「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>
両方のマクロ定義に対して同じ方法で要素に名前を付ける方法はありますか?