将Ant参数列表复制到属性中

Luk*_*ane 6 ant psexec

在Ant中有任何方法可以做这样的事情:

<arguments id="arg-list">
    <arg value="arg1" />
    <arg value="arg2" />
</arguments>

<property name="prop1" refid="arg-list" />
Run Code Online (Sandbox Code Playgroud)

我正在尝试为psexec编写一个宏,我正在寻找一种传递参数列表的好方法.

我知道你可以用classpaths做类似的事情......

谢谢!

Ric*_*d A 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"/>
Run Code Online (Sandbox Code Playgroud)

哪个会运行example.exe:

example.exe arg1 arg2
Run Code Online (Sandbox Code Playgroud)

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>
Run Code Online (Sandbox Code Playgroud)

这将运行example.exe:

example.exe somearg arg1 arg2
Run Code Online (Sandbox Code Playgroud)

我希望我没有教过我的祖母在这里吮鸡蛋.