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

How to loop executable argument for Ant <exec>?

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

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

我想使用 Ant <exec>ant-contrib<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>

但是没用。终端returns这条消息

exec doesn't support the nested "for" element.

有什么办法吗?

我刚从这个 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>