我有一个带有名为“libs”的元素的宏定义
<macrodef name="deploy-libs">
<element name="libs"/>
<sequential>
<copy todir="${glassfish.home}/glassfish/domains/domain1/lib">
<fileset dir="${lib}">
<libs/>
</fileset>
</copy>
</sequential>
</macrodef>
然后被调用为
<deploy-libs>
<libs>
<include name="mysql-connector-*.jar"/>
<include name="junit-*.jar" />
<!-- .... -->
</libs>
</deploy-libs>
然后我有另一个宏定义,它调用几个宏定义,包括“deploy-libs”。如果这个宏定义也有一个元素“libs”,那就太好了,但是:
<macrodef name="init-glassfish">
<element name="libs"/>
<sequential>
<!-- other stuff -->
<deploy-libs>
<libs>
<libs/>
</libs>
</deploy-libs>
<!-- other stuff -->
</sequential>
</macrodef>
显然不起作用(因为<libs><libs/></libs>
):
Commons/ant-glassfish-server.xml:116: unsupported element include
一个解决方案可能是以不同的方式命名“init-glassfish”中的元素:
<macrodef name="init-glassfish">
<element name="libraries"/>
<sequential>
<!-- other stuff -->
<deploy-libs>
<libs>
<libraries/>
</libs>
</deploy-libs>
<!-- other stuff -->
</sequential>
</macrodef>
有没有办法让两个宏定义以相同的方式命名元素?