我正在使用Ant 1.8
我在intelliJ IDEA中有多个模块。每个模块都有一个build.xml,目前我需要浏览该文件的build.xml并为每个模块运行ant。 例如模块B的构建成功取决于模块A的构建是否成功。
现在,我想更新此过程。如果存在一个选项,我可以编写单个构建过程,它将首先构建模块A的分发,然后在构建B的分发时,将检查模块A的构建是否成功。
有没有办法使用当前的Ant机制。我可以在常春藤看到类似的东西,但我不能在我的项目中使用它。
请使用基本的Ant功能建议一种方法。
答案 0 :(得分:3)
ANT中的subant任务是调用多模块构建的最灵活方式,例如:
<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
注意:强>
在我看来,使用此任务的最有效方法是将其与Apache ivy的buildlist任务相结合。让常春藤模块间依赖声明自动确定模块构建顺序。
答案 1 :(得分:0)
谢谢马克!! 你的回答对我很有帮助。
除了上面的回答,我想添加详细信息,如果属性是从属性文件加载的。
项目结构:
| - build.xml
| - ProjectOne
- build.xml
- antbuilds.properties
| - ProjectTwo
- build.xml
- antbuilds.properties
Common 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>