2011-11-29 84 views
2

我有一個ant腳本,它可以編譯我的程序,生成jar並運行它。我的程序有一個參數是一個文件。螞蟻 - 迭代文件夾以獲取運行參數

在我的運行目標中,我希望能夠將指定文件夾中的所有文件一個一個地作爲參數執行我的jar。

我必須通過像手工編寫所有的不同的情況:

<target name="run" depends="jar"> 
    <mkdir dir="${output.dir}" /> 
    <java jar="${myjar}.jar" output="${output.dir}/${test1}" fork="true"> 
      <arg value="${test.dir}/${test1}" /> 
    </java> 
    <java jar="${myjar}.jar" output="${output.dir}/${test2}" fork="true"> 
      <arg value="${test.dir}/${test2}" /> 
    </java> 

    #and so on 

</target> 

或者是有辦法也許迭代在我的測試目錄並保存我的其他20例寫作?

謝謝。

回答

1

我發現我的解決方案使用<apply>標記(doc)。

我的腳本現在看起來它和每一個執行中感謝<redirector>標籤單獨的文件輸出:

<target name="run" depends="jar"> 
    <mkdir dir="${output.dir}" /> 
    <apply executable="java"> 
     <fileset dir="${test.dir}" /> 
     <arg value="-jar"/> 
     <arg path="${jar.dir}/${myjar}.jar" /> 
     <srcfile /> 
     <redirector> 
       <outputmapper id="out" type="glob" from="*" to="${output.dir}/*" /> 
     </redirector> 
    </apply> 
</target> 
0

ant-contrib中的foreach標籤做你想要的。給它一個文件集並將它指向運行你的jar的目標。

+0

是的,我不希望有安裝別的東西...我只是找到了答案我以前找不到,http://stackoverflow.com/questions/1467991/ant-how-to-execute-a-command-for-each-file-in-directory,使用'apply'標籤。我會試試看。 – talnicolas