使用Ant构建其他依赖项目

让我先说一下我是Ant的新手。 就像在,我刚开始学习它2天前,以完成这项任务。

我要做的是创建一个“主”ant脚本,调用其他几个ant脚本。 例如:

Project A - contains build.xml, target "makeProjectAjar" - output: A.jar Project B - contains build.xml, target "makeProjectBjar" - output: B.jar Project C - contains build.xml, target "makeProjectCjar" - output: C.jar Project D - contains build.xml, target "finalPackage" - Must first build Project A, Project B, Project C - Copy A.jar, B.jar, C.jar to Project D - Package all of this into D.jar 

现在我拥有A,B和C的所有个人构建。 通过这个,我的意思是我可以从任何这些文件夹中运行’ant’,它将构建项目并生成一个jar文件。 如果我用这种方式构建A,B和C,我有3个jar文件。 然后我可以将它们复制到D中并将其打包到最终的jar中。 这很好。

但我想要的是能够从Project D的build.xml中触发A,B和C构建。我试过这个:

                 

makeCommonJar是Common / build.xml(项目A)中的目标,makeAndroidJar是../CommonAndroid/build.xml(项目B)中的目标。 但是,似乎在使用 ,它从调用文件夹的上下文运行。 项目B引用的含义资源不可用,因为它从项目D运行。这有意义吗?

很长的问题……使用Ant,如何在其他项目中调用build.xml文件以便首先构建这些项目?

以下是一些通用指南(不是规则,Ant非常自由):

  • build.xml通常设计为在特定项目上运行,因此不会在其他构建中“导入”
  • import任务通常用于共享一些构建机制,而不是像你一样的构建工作流程。 例如,构建jar的目标,由目标目录等属性参数化。
  • subantant任务首选用于触发其他项目的构建

所以这就是项目D的build.xml:

           

见http://ant.apache.org/manual/Tasks/ant.html