在Ant中有任何方法可以做这样的事情:
<arguments id="arg-list">
<arg value="arg1" />
<arg value="arg2" />
</arguments>
<property name="prop1" refid="arg-list" />
我正在尝试为psexec编写一个宏,我正在寻找一种传递参数列表的好方法。
我知道你可以用classpaths做类似的事情......
谢谢!
答案 0 :(得分:9)
我不知道您具体问题的答案。文档很清楚,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
我希望我没有教过我的祖母在这里吮鸡蛋。
答案 1 :(得分:0)
您是否了解Ant-Contrib任务For For ForEach: http://ant-contrib.sourceforge.net/tasks/tasks/for.html
还有找到任务:<find ... delimiter=""/> ... </find>
。这允许您创建列表。