【问题标题】:Maven is not combining the R.java files the same way that Eclipse doesMaven 没有像 Eclipse 那样组合 R.java 文件
【发布时间】:2011-03-10 15:35:12
【问题描述】:

我的 res/raw 文件夹中有一个文件,当我使用 Eclipse 编译时可以正确查看该文件。当通过持续集成使用 Maven 编译同一个项目时,文件并没有像我预期的那样通过。

在 Eclipse 中,我有一个 API 项目和一个 UI 项目。由于 UI 项目会调用 API,因此需要先构建 API 项目。 API 项目作为链接源被引入 UI 项目,因此该源很好地包含在 Eclipse 中。

对于我使用 Maven 的 CI,我有这个依赖项:

<dependency>
  <groupId>com.myapp.api</groupId>
  <artifactId>API</artifactId>
  <version>${project.version}</version>
  <scope>compile</scope>
</dependency>

当我运行由 Maven 构建的应用程序时,我在 API 中引用的资源 ID 在 UI 中被复制为不同的资源 ID,因此在 API 中找不到我的 res/raw 文件。

为了让 Maven 像 Eclipse 那样将 R.java 文件折叠在一起,我缺少什么?

【问题讨论】:

  • 你使用android库项目吗?
  • 我不这么认为。确定这一点的最佳方法是什么?

标签: android maven r.java-file


【解决方案1】:

如果您有两个独立的 android 项目,请查看 maven-android-plugin。
Here 是如何使用 android 库项目的简短描述,here 是更多详细信息和故障排除。

【讨论】:

  • 我发现我的 API 项目是一个 android 库。我在您引用的 ApkLib 上取得了一些成功。我现在遇到了一个外部库 ksoap2 的问题,它没有被正确包含。我没有改变我的 pom 中的内容,但也许我需要?
  • 确保您的依赖项在 pom.xml 中正确配置。如果没有,项目将无法构建,否则您将在运行时获得 ClassNotFoundExceptions。
  • 这正是我所处的位置。我已经使用此依赖项设置了一个父 pom ' com.google.code.ksoap2-androidksoap2-android2.4提供 '
  • 我的项目现在正在构建一个应用程序,该应用程序可以按照我的预期运行。我从依赖项中删除了 provided 标记。感谢您的帮助。
【解决方案2】:

我没有在 Android 上使用它,但你可以试试Eclipse plugin for Maven。从命令行运行

mvn eclipse:eclipse

这将根据您的 pom 文件为您生成 .project 和 .classpath。再说一次,我没有在 Android 上尝试过,但它在其他类型的项目(战争、罐子)上做得很好。

【讨论】:

  • 我需要另辟蹊径。我的 Eclipse 项目按我想要的方式工作。我需要 pom 的行为方式与 Eclipse 的行为方式相同。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-12
  • 1970-01-01
  • 1970-01-01
  • 2021-10-27
  • 1970-01-01
相关资源
最近更新 更多