2012-02-11 150 views
5

我有两个Android项目,一个共享库和应用程序。现在我想依赖于该库来编译应用程序。在Eclipse中,它工作得很好。之后,我通过git将其上传到我的存储库并触发Jenkins构建这两个项目。Ant使用依赖关系库构建Android项目

我的问题是,发生错误:“sdk/android-sdk-linux/tools/ant/build.xml:440:../shared-lib解析为项目没有project.properties文件的路径”。很明显,因为Jenkins中的作业存储与Eclipse不同。

的另一个问题是,了Eclipse编译共享 “的.jar” 和Ant编译到 “classes.jar”(在SDK/Android的SDK-LINUX /工具/ ANT/build.xml文件被命名)。

+0

我不太明白这里的问题。你是否还可以包含ant脚本(或从中提取)以及生成它的方式(如果有的话)。 – 2012-02-11 09:36:39

+0

我正在使用由** update-project **和我的_project.properties_包括** android.library.reference.1 = ../shared-lib **创建的build.xml。 你想要其他文件吗? – mars3142 2012-02-11 09:45:48

回答

1

我使用复制文件修复了它,第一个项目构建了我的shared-lib.jar。 ojects(手机和平板电脑)将此文件(shared-lib.jar)复制到libs -folder并正确构建。但是现在我在服务器和dev-client上有不同的projects.properties。这个没有签入git。

+0

你能解释一下如何使用ant或Jenkins来复制构建服务器上的文件吗?我是一个完整的蚂蚁新手,所以不要害怕贬低它。 :) – 2012-07-12 21:38:20

+0

请参阅http://stackoverflow.com/questions/9239131/ant-build-android-project-with-dependency-lib/9277001#comment11638044_9239303我在蚂蚁中使用了复制任务。 – mars3142 2012-08-15 14:08:50

4

Ant脚本应该允许你包含你需要的任何文件。在你的情况下,我会建议你将对shared-lib的引用移动到local.properties文件(该文件也应该由update-project生成的ant脚本读取。在存储库中保留jenkins的适当路径,并在本地为本地修改文件建于资源库中的文件,你需要有类似:

android.library.reference.1=../classes.jar 

编辑顺便说第二属性文件的建议仅仅是因为这个文件实际上意味着存储特定位置的属性

+0

怎样才能将'classes.jar'复制到'build-build'环境的build.xml中的'libs'文件夹中。我认为这将是更聪明的方式。 – mars3142 2012-02-11 10:07:07

+1

您可以在这里看到一个ant copy命令:http://ant.apache.org/manual/Tasks/copy.html。但是,您也可以轻松地将其他罐添加到构建路径中。我不知道你对蚂蚁的认识程度,但这在网上也应该比较容易找到。如果你需要这方面的帮助,请回复。 – 2012-02-11 10:14:50

+0

我对蚂蚁完全陌生:( – mars3142 2012-02-11 10:16:34