2013-01-14 25 views
1

我有幾個文件分散在幾個包中。我需要逐個加載文件並使用ANT執行操作,但每當我嘗試時,只加載一個文件。例如。我有2班 - com.abc.one.Onecom.bcd.two.Two。下面的腳本打印兩個文件的名稱,但只有第一個文件加載的文件中都循環迭代ANT-從幾個包中加載多個Java文件

<target name="build" description="My Task"> 
     <for param="file"> 
       <path> 
         <fileset dir="C:\workspace\AntTest1" includes="**\*.java" /> 
       </path> 
       <sequential> 
       <echo message="@{file}" /> 
       <loadfile property="loadedFile" srcfile="@{file}" /> 
       <echo message="${loadedFile}" /> 
       </sequential> 
     </for> 
</target> 

我曾嘗試搜索文檔,但無法找到如何使用的loadFile任務的簡要說明。我懷疑這可能是因爲ant使用不可變字符串,但無法解決問題。我試圖通過創建新的目標來分割工作,但這對我也沒有幫助。任何幫助,高度讚賞

+0

我知道這可以使用Gradle完成,如果你遇到Ant。 – djangofan

回答

1

Ant屬性只能設置一次,並且它被設置後,它是不可變的。

從我的Ant時代開始已經有一段時間了,但也許下面的解決方案可以工作:對於每個文件,請調用antcall調用,並將文件名作爲參數。然後,在新目標中加載文件並執行您的任務。請注意,antcall會嚴重影響運行時性能。

+0

我瞭解您的評論,但我看到參數文件獲得了不同的值。爲什麼不可變屬性不適用? –