我需要編寫一個Ant目標,將一個文件夾中的'.jar'文件名列表(逗號分隔)附加到一個變量中,該變量稍後將用作外部實用程序的輸入。 我遇到了範圍和不變性的障礙。我有權訪問ant-contrib,但不幸的是,我堅持使用的版本無法訪問'for'任務。這是我到目前爲止有:如何構建文件名列表?
<target name="getPrependJars">
<var name="prependJars" value="" />
<foreach param="file" target="appendJarPath">
<path>
<fileset dir="${project.name}/hotfixes">
<include name="*.jar"/>
</fileset>
</path>
</foreach>
<echo message="result ${prependJars}" />
</target>
<target name="appendJarPath">
<if>
<equals arg1="${prependJars}" arg2="" />
<then>
<var name="prependJars" value="-prependJars ${file}" />
</then>
<else>
<var name="prependJars" value="${prependJars},${file}" />
</else>
</if>
</target>
似乎它自己的範圍內「appendJarPath」只修改「prependJars」。作爲一個測試,我嘗試使用「antcallback」,它可以用於單個目標調用,但對我的文件列表沒有多大幫助。
我意識到,我對糧食工作有點和詞法範圍是在絕大多數情況下可取的,但我真的希望得到這個工作,這樣或那樣的。有沒有人有任何創造性的想法來解決這個問題?
這是完美的!謝謝! – AndreiM 2010-01-26 16:56:44