Я пытаюсь реорганизовать сборочный файл Ant со многими похожими целями в сборочный файл, использующий макросы. Это примерно так выглядит:
<macrodef name="build-text">
<argument name="lang" />
<element name="file-list"/>
<sequential>
<property name="lang" value="@{lang}" />
<xslt style="my_stylesheet.xsl" destdir="build" basedir="src">
<!-- lots of params here -->
<file-list />
</xslt>
</sequential>
</macrodef>
<target name="buildTextDE">
<build-text lang="DE">
<file-list>
<mapper>
<mapper type="glob" from="Text1_${lang}.html" to="Text1_${lang}.fo"/>
<mapper type="glob" from="Text2_${lang}.html" to="Text2_${lang}.fo"/>
</mapper>
</file-list>
</build-text>
</target>
Существует еще одна задача с именем buildTextEN
, которая почти идентична, за исключением атрибута lang
. Однако в некоторых случаях список файлов отличается. Теперь, как бы я хотел еще больше упростить файл сборки, определив «глобальный» список сопоставлений, который содержит списки файлов для немецкого и английского языков, каждый файл с заполнителем для языка. Я хотел бы сослаться на это глобальное отображение, где не требуется особый случай. Как бы я это сделал?