Ant example - for loop

此範例展示使用ant做for迴圈,使用到contrib函式庫...

事前工作:
1. 下載antcontrib jar: http://sourceforge.net/projects/ant-contrib/files/ant-contrib/ (筆者用的是1.0b3)
2. 解壓後,將antcontrib jar檔放置到ant目錄下的lib目錄裡
3. 參數檔:
#build.properties
SERVER_LIST=1.1.1.1,2.2.2.2,3.3.3.3

說明:
1. ant的for迴圈裡面取用迴圈參數是用@來取值,ex: @{letter},為了避免跟一些使用@的參數參雜產生錯誤,這邊另外指派給str這個變數
2. 另外,這邊使用contrib下的var方式來宣告變數,原因是因為<property name="str" value="@{letter}"/>方式宣告的變數只會在第一次呼叫時候初始化一次,該值不會再被替換

程式碼:
#build.xml
<project name="example" basedir="." default="build"
  xmlns:ac="antlib:net.sf.antcontrib">
  <property file="build.properties" />
  <target name="build">                                                                                                                                                                                
    <ac:for list="${SERVER_LIST}" param="letter">
      <sequential>
        <ac:var name="str" value="@{letter}"/>
        <echo>Letter: ${str}</echo>
      </sequential>
    </ac:for>
  </target>
</project>

執行:
$ ant 
Buildfile: /private/tmp/build.xml

build:
     [echo] Letter: 1.1.1.1
     [echo] Letter: 2.2.2.2
     [echo] Letter: 3.3.3.3

BUILD SUCCESSFUL
Total time: 0 seconds

參考: