如何在Eclipse中使用Maven导入Android AAR依赖项



注意:我使用的是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

相关内容

  • 没有找到相关文章

最新更新