有没有办法在ant中“重载”两个宏定义?

有没有办法在ant中“重载”两个宏定义?,ant,overloading,macrodef,Ant,Overloading,Macrodef,我想实现一个可通过两种方式调用的,一种是使用单个文件参数,另一种是使用: 这似乎不起作用。有什么技巧可以用来实现准重载吗?或者我必须重命名其中一个宏定义?我知道我可以写这篇文章,并检查是否设置了参数,例如使用ant contrib: <macrodef name="sqlplus"> <attribute name="file"/> <element name="files" optional="yes"/> <!-- ... -

我想实现一个可通过两种方式调用的,一种是使用单个文件参数,另一种是使用:

这似乎不起作用。有什么技巧可以用来实现准重载吗?或者我必须重命名其中一个宏定义?我知道我可以写这篇文章,并检查是否设置了参数,例如使用ant contrib:

<macrodef name="sqlplus">
    <attribute name="file"/>
    <element name="files" optional="yes"/>
    <!-- ... -->
</macrodef>

但是没有办法做出选择。

OT:嗨,卢卡斯!有一次,我试图破解Ant脚本,以解决在jar中添加manifest属性的问题。我放弃了任何XML编程和使用Javascript和。Javascripting不需要ant contrib,只需要ant节点。也许Javascript会提供更好的方法来处理缺少属性或元素的问题。@TomášZáluský:是的,我知道Javascript可以解决问题。我可能会满足于两个不同名称的macrodef。但是我还没有找到这个问题的答案,所以我想记录在案,如果未来的访问者发现这个问题,他们可能会发现它很有用。。。
<macrodef name="sqlplus">
    <attribute name="file"/>
    <element name="files" optional="yes"/>
    <!-- ... -->
</macrodef>