4

我想在 ant 构建文件中定义一个变量列表,以便在我的任务中使用这个列表的 for 循环。我怎样才能做到这一点?

ps:应该是这样的:

<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>
4

3 回答 3

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>
于 2012-04-05T14:28:53.757 回答
3

不确定是否是您的意思:

<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>
于 2012-04-05T14:10:57.797 回答
1

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

于 2012-04-06T20:29:46.600 回答