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

时间:2014-07-11 16:34:28

标签: android eclipse maven android-maven-plugin

注意:我使用的是Maven 3.2.2,Eclipse Luna

这是我使用Android AAR存档的pom.xml中的依赖项

<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依赖项添加的类时没有问题

非常感谢任何帮助。

3 个答案:

答案 0 :(得分:6)

目前,m2e-android plug-in无法支持AAR文件,因为ADT开发团队have not added AAR support to the Eclipse ADT plug-in

这是一个悬而未决的问题:

https://github.com/rgladwell/m2e-android/issues/177

答案 1 :(得分:0)

在做了一些在线研究之后,似乎没有简单直接的方法可以做到这一点。 AAR 不是标准格式,Eclipse 不支持。它需要一个黑客才能让它发挥作用。以下是具有不同经验水平的三个选项:

  • 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。

答案 2 :(得分:-1)

您可以尝试我的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中为ADT插件轻松导入。因此插件在“生成”目标执行期间进行以下更改:

  • 将AAR项目目录从输入目录复制到输出目录
  • 将/classes.jar移至/libs/project_name.jar
  • 将/ jni目录移动到/ libs
  • 创建.project,.classpath,.settings / org.eclipse.jdt.core.prefs和project.properties文件
  • 创建/ gen目录
  • 添加对root project.properties文件的引用

<强>用法

将插件添加到您的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 - &gt;将生成的项目从/ eclipse-aar目录导入Eclipse现有项目进入Workspace'。

插件目标文档

http://komo81.bitbucket.org/eclipse-aar-maven-plugin/plugin-info.html