Я пытаюсь использовать ant для использования XSLT для предварительной обработки трех конкретных таблиц стилей в моем проекте. В документации Ant для задачи xslt говорится, что он должен иметь возможность принимать любые сбор ресурсов. В частности, говорится:
Используйте коллекции ресурсов, чтобы указать ресурсы, к которым должна применяться таблица стилей. Используйте вложенный преобразователь и атрибут destdir задачи, чтобы указать выходные файлы.
Поэтому я попытался указать эти таблицы стилей с помощью набора файлов и использовать набор файлов в качестве вложенного элемента в задаче xslt, но пока это не сработало. Вместо этого он, по-видимому, проигнорирует указанный набор файлов и просканирует весь проект на наличие файлов, оканчивающихся на .xsl, применит к ним таблицу стилей и назовет вывод в соответствии с логикой, указанной в преобразователе.
<fileset id="stylesheets-to-preprocess" dir="${basedir}">
<filename name="src/xslt/backends/js/StatePatternStatechartGenerator.xsl"/>
<filename name="src/xslt/backends/js/StateTableStatechartGenerator.xsl"/>
<filename name="src/xslt/backends/js/SwitchyardStatechartGenerator.xsl"/>
</fileset>
<!-- ... -->
<target name="preprocess-stylesheets" depends="init">
<xslt
classpathref="xslt-processor-classpath"
style="src/xslt/util/preprocess_import.xsl"
destdir="build"
scanincludeddirectories="false">
<fileset refid="stylesheets-to-preprocess"/>
<mapper>
<chainedmapper>
<flattenmapper/>
<globmapper from="*.xsl" to="*_combined.xsl"/>
</chainedmapper>
</mapper>
</xslt>
</target>
Я бы хотел ограничить его так, чтобы обрабатывались только те файлы, которые указаны в наборе файлов.
Удаление преобразователя так, чтобы набор файлов был единственным вложенным элементом, приведет к тому, что муравей попытается применить преобразование к каждому файлу, даже без расширений xsl, что неизбежно приведет к сбою при попытке преобразовать документ, отличный от xml.
Я использую муравей 1.7.1. Любое руководство будет оценено.