回答
這可能是你在尋找什麼,
把這個作爲目標之一,你的父母的build.xml
<target name="executeChildBuild">
<ant antfile="sub1/build.xml" target="build" />
<ant antfile="sub2/build.xml" target="build" />
</target>
不是,我想要一個頂級build.xml遍歷所有子目錄,並在頂級build.xml中運行目標方法,並將子目錄名作爲參數。子目錄不會有單獨的build.xmls。 – eleshmistry 2011-05-23 14:38:15
做你的意思是這樣,僞代碼: <迭代目錄名> <螞蟻antcall =「DoSomething的」參數=「$ {目錄名}」 /> – Adelave 2011-05-23 14:44:21
沒錯,但在螞蟻 – eleshmistry 2011-05-23 14:48:24
如果你想做到這一點在ant build文件,你可以使用Ant Contrib's for task遍歷子目錄列表併爲每個子目錄執行ant任務。
<for param="subdir">
<dirset dir="${build.dir}">
<include name="./**"/>
</dirset>
<sequential>
<subant target="${target}">
<property name="subdir.name" value="@{subdir}"/>
</subant>
</sequential>
</for>
我沒有測試這個代碼,因爲沒有安裝ant,但它接近你想要做的,我想。
我已經取得了一些進展,我想使用Subant,但有一個問題:
已更新,代碼示例 – artplastika 2011-05-23 15:47:39
如果我正確地閱讀了這個問題,這可能是你正在尋找的東西。
因此,對於你的例子...
<target name="do-all">
<antcall target="do-first">
<param name="dir-name" value="first"/>
<param name="intented-target" value="init"/>
</antcall>
<antcall target="do-first">
<param name="dir-name" value="second"/>
<param name="intented-target" value="build"/>
</antcall>
<antcall target="do-first">
<param name="dir-name" value="third"/>
<param name="intented-target" value="compile"/>
</antcall>
</target>
<target name="do-first">
<echo>Hello from ${dir-name} ${intented-target}</echo>
<ant antfile="${dir-name}/build.xml" target="${intented-target}"/>
</target>
當你從螞蟻調用這個,你會在命令行輸入:
ant do-all
和你的輸出應該看起來像此:
do-all:
do-first:
[echo] Hello from first init
do-first:
[echo] Hello from second build
do-first:
[echo] Hello from third compile
BUILD SUCCESSFUL
Total time: 1 second
您當然需要確保您用作param的目錄名實際存在,否則構建將失敗。
您也可以始終通過將值添加到build.properties文件來提供您想要使用的變量。
看看subant任務。從這個頁面:
<project name="subant" default="subant1">
<property name="build.dir" value="subant.build"/>
<target name="subant1">
<subant target="">
<property name="build.dir" value="subant1.build"/>
<property name="not.overloaded" value="not.overloaded"/>
<fileset dir="." includes="*/build.xml"/>
</subant>
</target>
</project>
這個片段構建文件將運行在項目目錄,其中一個文件名爲build.xml可以發現每個子目錄螞蟻。屬性build.dir將具有值subant1。建立在subant調用的ant項目中。
- 1. ANT:如何在子目錄中調用所有build.xml的目標?
- 2. 無法運行ant build.xml
- 3. 在Ant子目錄中運行PigUnit
- 4. 使用ant(build.xml)編譯jni目錄
- 5. 在所有子目錄中運行Hunspell
- 6. 在windows的build.xml中爲ant指定日文字符的目錄
- 7. 在沒有build.xml的情況下運行junit ant任務
- 8. Ant build.xml phpunit
- 9. build.xml in ant
- 10. 列出目錄,忽略子目錄ANT
- 11. ant zip;排除所有子目錄和文件
- 12. 從ANT build.xml文件創建eclipse項目
- 13. ANT - JavaFX複雜build.xml
- 14. android build.xml多個源目錄
- 15. 未在NetBeans build.xml文件中設置Ant變量的子項目
- 16. 如何在目錄內的所有子目錄上運行批處理文件?
- 17. node-gyp:在所有子目錄中運行binding.gyp
- 18. 使用鼻子在目錄中運行所有測試
- 19. 作爲Ant目標運行JUnit測試
- 20. ant zip:如何爲所有文件/目錄添加前綴
- 21. 從Build.xml(ANT)執行TestNG.xml文件
- 22. 在build.xml上運行ANT命令時出現錯誤
- 23. Android ant build:如何運行android上傳並不更新build.xml,proguard.cfg
- 24. 通過shell腳本運行ant時無法找到build.xml文件
- 25. Ant - 在build.xml的不同終端上運行幾個服務器
- 26. 爲Ant build.xml創建GWT編譯規則
- 27. 是否可以在build.xml中爲ant指定記錄器?
- 28. Ant build.xml中的Groovy(帶有Java類)
- 29. Apache別名爲外部目錄和所有子目錄
- 30. 如何使用ant build.xml導入現有的java web項目
你是什麼意思下的「腳本」:蝙蝠,SH等? – artplastika 2011-05-23 14:30:59