注意:我使用的是Maven 3.2.2, Eclipse Luna
这是我的pom.xml中的依赖项,它使用Android AAR存档
<dependency>
<groupId>com.github.gabrielemariotti.cards</groupId>
<artifactId>library</artifactId>
<version>1.7.3</version>
<type>aar</type>
</dependency>
我可以看到安装在target/classes文件夹中的类。
但是当我尝试在AAR中使用类时,Eclipse显示类无法解析。在pom.xml
中使用JAR依赖项添加的类没有问题目前m2e-android插件不支持AAR文件,因为ADT开发团队还没有将AAR支持添加到Eclipse ADT插件中。
这是一个突出的问题:
https://github.com/rgladwell/m2e-android/issues/177在做了一些网上调查后,似乎没有简单直接的方法来做到这一点。AAR不是标准格式,Eclipse不支持AAR。为了让它工作,需要一个hack。以下是三个不同经验水平的选择:
- Android SDK随
$ANDROID_HOME/extras/android/support
中标准Android库的源代码一起提供。(或者,如果您可以获取您正在使用的任何第三方库的源代码,也应该可以。)将该库作为一个单独的项目导入到你的工作空间中,并设置其属性以将其标识为Android库。然后,在项目属性的Android部分,添加一个库引用。这在Eclipse之外不会产生任何影响(例如,它不会影响Maven命令行构建),但它将允许Eclipse解析对该库的引用。对于一些v7支持库,我已经成功地做到了。 - AAR本质上是一个包含
classes.jar
和一堆android特定资源的zip文件,所有这些都以Eclipse可以使用的格式出现。如果你已经建立了对该库至少一次,从你的M2缓存(~/.m2/repository
)抓取它。将AAR解压缩到您选择的目录中(只要您计划根据该库进行构建,就需要将其保存在该目录中)。将classes.jar
添加到项目的类路径中。这将允许Eclipse解析任何Java引用,但不能解析android特定的引用(比如样式)。 结合上述两种方法,您还可以尝试将解压缩的AAR作为项目导入,并将其添加到您的项目中。这应该允许Eclipse不仅解析Java引用,还解析特定于android的引用。您将需要对此进行一些实验,因为该项目将没有Java源代码,而是需要包含在构建路径中的JAR。
您可以尝试我的Maven插件https://bitbucket.org/komo81/eclipse-aar-maven-plugin。
Plugin为Android AAR依赖项生成Eclipse项目,以便在Eclipse中导入。它与https://github.com/simpligility/android-maven-plugin一起工作,它解压缩Android AAR依赖到/target/unpacked-libs目录。这个插件接受这些未打包的依赖项,并将它们修改为易于在Eclipse for ADT插件中导入。所以插件在'generate'目标执行期间做了以下更改:
- 将AAR项目目录从输入目录复制到输出目录
- 将/classes.jar移动到/libs/project_name.jar
- 将/jni目录移动到/libs
- 创建.project, .classpath, .settings/org.eclipse. jts .core。偏好和项目。属性文件
- 创建/gen目录
- 添加根项目的引用。属性文件
添加插件到pom.xml
<build>
<plugins>
<plugin>
<groupId>org.bitbucket.komo81</groupId>
<artifactId>eclipse-aar-maven-plugin</artifactId>
<version>1.0.0</version>
<executions>
<execution>
<goals>
<goal>clean</goal>
<goal>generate</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<pluginRepositories>
<pluginRepository>
<id>dropbox</id>
<url>https://dl.dropboxusercontent.com/u/52711537/maven-repo/</url>
</pluginRepository>
</pluginRepositories>
执行mvn compile
。通过"Import -> Existing projects into Workspace",从/Eclipse -aar目录导入生成的项目到Eclipse中。
Plugin goals documentation
http://komo81.bitbucket.org/eclipse-aar-maven-plugin/plugin-info.html