我建議使用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文件中創建的模塊間依賴關係來完成的。 –