Ant的macrodef的默认元素?

Mik*_*one 7 ant

我想创建一个宏:

<macrodef name="testing">
  <element name="test" implicit="yes"/>
  <sequential>
    <test/>
  </sequential>
</macrodef>
Run Code Online (Sandbox Code Playgroud)

然后使用它:

<testing>
  <echo message="hello world"/>
</testing>
Run Code Online (Sandbox Code Playgroud)

但是,我想为隐式元素指定一个默认值...类似于:

<macrodef name="testing">
  <element name="test" implicit="yes">
    <echo message="hello world"/>
  </element>
  <sequential>
    <test/>
  </sequential>
</macrodef>
Run Code Online (Sandbox Code Playgroud)

所以我可以这样使用它:

<testing/>
Run Code Online (Sandbox Code Playgroud)

除了我想要更改默认元素.

如果没有通过Java类定义任务,这可能吗?到目前为止,我没有看到任何说明如何操作的文档,如果是的话.


更新

我最终通过使用refid for filesets来解决我的特定问题(这实际上是我试图将其放入元素中).使用refid,只需使用一个具有默认值的macrodef属性即可.

另一个替代方法是创建一个使用该元素的新基本宏,然后我可以将我现有的宏保存为使用那个...但是,对于一个元素没有真正的默认机制(这会很好).

所以,西蒙得到了答案,因为他是对的!谢谢!

Sim*_*hke 6

基于任务的嵌套element元素文档,这是不可能的.macrodef

一个Bugzilla问题可以完全针对您描述的功能打开,不幸的是它自2004年以来一直开放.