如何为Ant <exec>循环可执行参数?

时间:2015-04-24 02:10:43

标签: ant

我有一个命令可以接收多次使用的选项,例如

$./myprogram --param a --param b --param c --param d
the input param
a
b
c
d

我想使用Ant <exec>ant-contrib的{​​{1}}来执行此程序。

而不是循环<for>,如下所示

<exec>

我尝试循环<for list="a,b,c,d" param="var"> <exec executable="myprogram"> <arg value="--param"/> <arg path="@{var}"/> </exec> </for> ,如下所示

param

但它不起作用。终端返回此消息

<exec executable="myprogram">
    <for list="a,b,c,d" param="var">
       <arg value="--param"/>
       <arg path="@{var}"/>
    </for>
</exec>

有没有办法做到这一点?

1 个答案:

答案 0 :(得分:0)

我刚从这个question尝试了这个,虽然它比我想象的要长,但它仍然有用

<property name="arg_list" value="a,b,c,d"/>
<resources id="arguments">
    <mappedresources>
        <string value="${arg_list}" />
        <filtermapper>
            <replacestring from="," to=" --param "/>
        </filtermapper>
    </mappedresources>
</resources>
<property name="arguments" value="--param ${toString:arguments}" />
<exec executable="myprogram">
    <arg line="${arguments}"/>
</exec>