在ant中定义一个列表或一组变量

时间:2012-04-05 14:07:47

标签: java list ant for-loop

我想在ant build文件中定义一个变量列表,以便在我的任务中使用带有此列表的循环。我怎么能这样做?

p.s。:它应该类似于以下内容:

<varlist name="mylist"> <!-- Actually, there is no such tag in Ant -->
    <item>someThing</item>
    <item>anotherThing</item>
</varlist>

...

<for param="item" list="${mylist}">
    <sequential>
        <echo>@{item}</echo>
    </sequential>
</for>

3 个答案:

答案 0 :(得分:4)

<!-- "For" task is supported by Ant-Contrib Tasks 
http://ant-contrib.sourceforge.net/tasks/tasks/index.html -->
<taskdef resource="net/sf/antcontrib/antlib.xml">
  <classpath>
    <pathelement location="ant-contrib-1.0b3.jar"/>
  </classpath>
</taskdef>

<property name="someThing" value="Hello"/>
<property name="anotherThing" value="World!"/>

<target name="loop">
    <for param="item" list="${someThing},${anotherThing}">
        <sequential>
            <echo>@{item}</echo>
        </sequential>
    </for>
</target>

答案 1 :(得分:3)

不确定this是否符合您的意思:

<echo message="The first five letters of the alphabet are:"/>
<for list="a,b,c,d,e" param="letter">
  <sequential>
    <echo>Letter @{letter}</echo>
  </sequential>
</for>

答案 2 :(得分:1)

Ant Addon Flaka 具有非常灵活的 for 任务。您可以使用自己的属性foobar = item1,item2,..或任何现有的csv like property,f.e。 ant path / fileset / dirset提供的一些属性,如$ {ant.refid:whatever}或$ {toString:whatever}或Flaka提供的EL函数的结果,如split()或list()..或其他列表要迭代的对象/项目,请参阅 Flaka manual Flaka examples 以获取更多详细信息和示例。