我正在使用Ant 1.8
我在intelliJ IDEA中有多个模块。每个模块都有一个build.xml,目前我需要浏览到该文件的build.xml,并为每个模块运行ant。例如,模块B的构建成功取决于模块A的构建是否成功。
现在,我想更新这个过程。如果存在一个选项,其中我可以编写一个单独的构建过程,该过程将首先为模块a构建分发,然后在为B构建分发时,将检查模块a的构建是否成功。
有没有办法使用当前的Ant机制。我可以在常春藤上看到类似的东西,但我不能在我的项目中使用它。
请推荐一种使用Ant基本功能的方法。
ANT中的子ANT任务是调用多模块构建的最灵活的方法,例如:
<project name="parent" default="build">
<target name="build">
<subant>
<filelist dir=".">
<file name="moduleA/build.xml"/>
<file name="moduleB/build.xml"/>
</filelist>
<target name="clean"/>
<target name="build"/>
</subant>
</target>
</project>
项目结构
|-- build.xml
|-- moduleA
| `-- build.xml
`-- moduleB
`-- build.xml
注意:
在我看来,使用这个任务最强大的方法是将它与Apacheivy中的构建列表任务相结合。让ivy模块间依赖声明自动确定模块构建顺序。
谢谢Mark!!你的回答对我帮助很大。
除了上面的答案,我想添加详细信息,若属性是从属性文件加载的。
项目结构:
|--build.xml
|--ProjectOne
nbsp nbsp;--build.xml
nbsp nbsp;--antbuilds.properties
|--项目二
nbsp nbsp;--build.xml
nbsp nbsp;--antbuilds.properties
通用ANT构建文件:
<project name="Parent" default="all">
<target name="ProjectOne">
<subant>
<property file="ProjectOne/antbuilds.properties"/>
<filelist dir=".">
<file name="ProjectOne/build.xml"/>
</filelist>
<target name="deploy"/>
</subant>
</target>
<target name="ProjectTwo">
<subant>
<property file="ProjectTwo/antbuilds.properties"/>
<filelist dir=".">
<file name="ProjectTwo/build.xml"/>
</filelist>
<target name="deploy"/>
</subant>
</target>
<target name="all" depends="ProjectOne, ProjectTwo">
</target>