我有一种被称为元素“库”蚂蚁macrodefs和元素命名
<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>
然后我有另一个macrodef它调用几个macrodefs包括“一个macrodef部署-库”。这将是很好,如果这macrodef有一个元素“库”太多,但:
<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>
有没有办法有两个macrodefs以同样的方式被命名为元素?