【问题标题】:Include maven dependencies in eclipse "Run As -> Android Application" build在 Eclipse“运行方式-> Android 应用程序”构建中包含 maven 依赖项
【发布时间】:2011-02-07 16:14:23
【问题描述】:

我使用 eclipse、Android Development Tools (ADT) pluginmaven-android-plugin 开发了一个 Android 应用程序。

在命令行 (mvn install / adb install) 上构建和安装应用程序工作正常 - 特别是它包括 pom.xml 中指定的所有依赖项。

通过 Eclipse(运行方式 -> Android 应用程序)将应用程序部署到 Android 不会自动将依赖项放入 apk 文件中 - 尽管在 pom.xml 中指定。我必须在 eclipse 项目Build Path -> Libraries 对话框中明确声明它们。

有没有办法让 eclipse 包含 pom.xml 中定义的依赖项,而无需在项目 Build-Path -> Libraries 中定义两次?

编辑: 澄清一下 - eclipse 项目包含一个“Maven 依赖项”条目,其中包含在 pom.xml 中指定的所有依赖项。但是在通过“运行方式-> Android 应用程序”安装期间,这些依赖项不会包含在 apk 中。要包含它们,必须在“Java Build Path -> Libraries”对话框中额外添加每一个。这就是痛苦!

【问题讨论】:

  • 听起来像是插件中的一个错误或缺少的功能,maven知道如何处理它但eclipse下的项目不知道。您可以对 Eclipse 进行“maven”导入,即打开文件->导入-> maven 项目或类似的东西,然后它可能会自动更新构建路径?
  • @codeScriber Maven 导入工作正常。所有依赖项都出现在“Maven 依赖项”条目中 - 所以开发不是问题。但是除非每个依赖 jar 都明确添加(添加外部 JAR...)到 Java 构建路径对话框中的库选项卡,否则它们不会随应用程序一起安装(到模拟器)。
  • @K.Claszen 确实如此。一旦我将 facebook lib 添加为外部 jar,一切就开始工作了。但是,你有没有想出如何以更“正常”的方式解决这个问题?我的意思是,如果你必须手动添加你的库,那么使用 Maven 就没有意义了。
  • @Mike Bevz 到目前为止我还没有找到任何其他方式。

标签: android eclipse maven


【解决方案1】:

我在项目“Java 构建路径”配置中的“订购和导出”处启用了“Maven 依赖项”复选标记,这似乎包括所有 Maven 依赖项。

这些依赖项(编译范围)被放入 target/android-classes 中(其中有很多,最常见的是内部项目的快照,大约 10 个)。我遇到了其他一些困难,但这可能与 m2eclipse android 集成插件有关(至少在 Windows 7 上)。

为了让我正确设置的 maven 项目运行,我必须:

导入为 maven 项目或...

清理之前创建的 eclipse 文件(mvn eclipse:clean,mvn eclipse:eclipse),然后为该项目启用 maven 依赖解析,熟练的 Java 构建路径(gen -> target/android-classes,src -> target/classes,默认输出文件夹 -> android-classes)并导出 Maven 依赖项(启用复选标记)。

我偶然发现的一件事是“找不到 *.apk!”运行或调试 android 应用程序时出错。我可以通过为使用的执行环境使用 32 位 jdk 来解决这个问题。

【讨论】:

  • 你说的似乎包括是什么意思?你检查了吗?正如我所观察到的,这不包括“真正的”第三方库。 (我并不是说 com.google.android:android 工件的所有“提供”传递依赖项)。
【解决方案2】:

也许你应该看看m2e-android,假设你已经在使用M2Eclipse

【讨论】:

  • 听起来不错!明天会尝试并提供反馈(今天时间不多了)。谢谢!
  • 你有没有用这个插件做任何谷歌体验。安装后,eclipse 经常挂在“Building Workspace...”中(至少在启用“Build automatic”时)并且构建过程似乎循环。最糟糕的是,依赖项没有按预期包含在 apk 文件中。
  • 我想将此标记为正确答案,但由于该插件不包含 apk 文件中的所有项目依赖项,并且它还会减慢 eclipse“自动构建”的速度,我暂时不推荐它(假设我没有犯任何错误)。
  • 查看最新版本。这些问题都已修复。
  • 我全新安装了 0.2.5(这是我从更新站点获得的)。首先问题仍然存在,但我在构建期间检测到Cannot add source folder Duplicate files at the same path inside the APK 错误。我将 eclipse Default output folder 更改为 NOT <project>/target/classes(而不是 bin),现在它可以工作了(包括依赖项)。启用build automatically 后,每次代码更改仍然非常容易。似乎构建了完整的 apk 文件,这在我看来只有在设备部署的情况下才需要。尽管如此,现在对我来说非常有用。谢谢!
猜你喜欢
  • 1970-01-01
  • 2019-06-06
  • 1970-01-01
  • 1970-01-01
  • 2014-03-12
  • 2011-11-07
  • 1970-01-01
  • 1970-01-01
  • 2011-05-11
相关资源
最近更新 更多