1

我创建了一个测试项目来了解如何使用命令行工具构建和运行测试。我设法创建了一个项目,并用

android update project -p .

并调试

ant debug

当我在这个测试项目中添加一个库项目时,由于找不到库的 build.xml,ant 调试开始失败。我发现 atm 的唯一解决方案是也更新库项目(在此处找到)。这是正确的方法吗?我在我使用的许多库中都看到了 pom.xml 文件。我知道它被 Maven 使用(尽管我对此一无所知),它可能会帮助我找到另一种解决方案。

4

1 回答 1

3

Ant是构建android apk的官方方式。Maven 是一种替代方法(官方不支持,但效果很好)。

使用 maven 或 ant 时,默认项目布局几乎没有区别,但如果您进行一些额外的配置工作(即某些信息将被复制),则可以让两个构建系统在相同的源代码上工作。

使用 Maven 的默认项目布局

  • java源文件在`/src/main/java`下
  • 依赖项在 pom.xml 中定义(使用 maven 定义依赖项的方式,类型apklib为 android 库)

使用 ant(和 eclipse ADT 插件)的默认项目布局

  • java源文件在/src
  • 依赖项在相对路径中定义/project.properties并使用相对路径指定。

这是一个示例project.properties(它是引用其他 2 个库项目的库项目的典型示例):

target=android-15
android.library=true
android.library.reference.1=../somelib
android.library.reference.2=../someOtherLib

(如您所见,此文件中存储了一些附加信息:android 目标以及项目是库或应用程序这一事实。当您使用 maven 时,此信息位于 pom.xml 中)

如何用 ant 构建一个 maven android lib?

问题(当您需要构建maven-layout-android-librarywith 时ant)如下:

  • 有一个适当的/build.xml(可以通过android update library-project ...这里是关于这个命令的官方文档来完成)
  • 有一个适当的/project.properties(它部分由android update ...命令完成,但您可能需要android.library.reference手动添加一些或使用 eclipse ADT 插件)
  • 告诉antjava源文件不在默认位置,但在/src/main/java

对于最后一点,这里是如何做到的:

  • 创建一个文件/ant.properties(在你的maven-layout-android-library
  • 将以下条目放入其中:

    source.dir=src/main/java

重要:并不总是需要,因为有时 java 源文件已经/src在 maven-layout-project 下,在这种情况下,pom.xml 包含源目录所在的信息/src

就这样。现在,你maven-layout-android-library可以用ant debug

于 2013-03-16T08:28:36.490 回答