我建议使用subant任务
<project name="Subant demo" default="deploy-everything">
<target name="deploy-everything">
<subant>
<fileset dir="." includes="**/build.xml" excludes="build.xml"/>
<target name="clean"/>
<target name="deploy"/>
</subant>
</target>
</project>
这会发现所有“的build.xml”文件,并呼吁每一个“干净部署”的目标。
尽管自动拾取子文件夹的构建很简洁,但除非构建彼此独立(构建顺序非常重要),否则它很少适用于大型项目。在“常春藤
<project name="Subant demo" default="deploy-everything">
<target name="deploy-everything">
<subant>
<filelist dir=".">
<file name="Folder1/SubFolder1/build.xml"/>
<file name="Folder1/SubFolder2/build.xml"/>
..
</filelist>
<target name="clean"/>
<target name="build"/>
</subant>
</target>
</project>
最后,最先进的解决方案是使用像ivy依赖管理者要申报每个模块的依赖关系:
下面的示例使用一个明确的文件列表,而不是一个文件集是无序.xml“文件。正确设置,这使得每个子模块更独立。为了解决构建“一切只能去问题”常春藤提供了一个buildlist任务,可以自动确定正确的构建顺序:
<target name="deploy-everything">
<ivy:buildlist reference="build-path">
<fileset dir="." includes="**/build.xml" excludes="build.xml"/>
</ivy:buildlist>
<subant buildpathref="build-path">
<target name="clean"/>
<target name="build"/>
</subant>
</target>
没错,它确实有效的大项目,构建顺序也很重要,你可以看看我的解决方案是没有任何机会优先提供有... :) – Azhar
@Azhar使用常春藤的buildlist任务的我只知道自动确定构建顺序的方法。它是基于ivy.xml文件中创建的模块间依赖关系来完成的。 –