Define a list or a set of variables in ant

2019-06-28 07:27发布

I'd like to define a list of variables in ant build file in order to use for loop with this list in my tasks. How can I do that?

p.s.: It should be something like the following:

<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条回答
Deceive 欺骗
2楼-- · 2019-06-28 07:33

Not sure if this is what you meant:

<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>
查看更多
神经病院院长
3楼-- · 2019-06-28 07:35
<!-- "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>
查看更多
狗以群分
4楼-- · 2019-06-28 07:43

Ant Addon Flaka has a very flexible for task. You may use your own property foobar=item1,item2,.. or any existing csv like property, f.e. some property provided by ant path/fileset/dirset like ${ant.refid:whatever} or ${toString:whatever} or the result of an EL function provided by Flaka like split() or list() .. or another list of objects/items to iterate over, see Flaka manual, Flaka examples for more details and examples.

查看更多
登录 后发表回答