在 Ant 中有没有办法做这样的事情:
<arguments id="arg-list">
<arg value="arg1" />
<arg value="arg2" />
</arguments>
<property name="prop1" refid="arg-list" />
我正在尝试为 psexec 编写一个宏,并且正在寻找一种传入参数列表的好方法。
我知道你可以用类路径做类似的事情......
谢谢!
我不知道你的具体问题的答案。文档清楚地表明 refid '仅对 PATH 之类的结构或属性的引用产生合理的结果。
如果没有更多关于你想要做什么的信息,很难发表评论。冒着改变你的设计的风险,而不是回答你的问题,我建议:
1)您可以将参数列表作为一行传递给 exec:
<macrodef name="example">
<attribute name="args"/>
<sequential>
<exec executable="example.exe">
<arg value="somearg" />
<arg line="@{args}"/>
</exec>
</sequential>
</macrodef>
<example args="somearg arg1 arg2"/>
它将运行 example.exe:
example.exe arg1 arg2
2)我将参数传递给调用外部应用程序的宏,如下所示:
<macrodef name="example">
<element name="params" optional="yes" implicit="yes"/>
<sequential>
<exec taskname="eg" executable="example.exe">
<arg value="somearg" />
<params />
</exec>
</sequential>
</macrodef>
<example>
<arg value="arg1"/>
<arg value="arg2"/>
</example>
这将运行 example.exe:
example.exe somearg arg1 arg2
我希望我没有教祖母在这里吸鸡蛋。
你知道 Ant-Contrib 任务 For 和 ForEach 吗: http://ant-contrib.sourceforge.net/tasks/tasks/for.html
还有查找任务:<find ... delimiter=""/> ... </find>
。这允许您创建一个列表。