Я пытаюсь использовать 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>
Я хотел бы ограничить его так, чтобы обрабатывались только те файлы, которые указаны в наборе файлов.
Удаление сопоставителя, так что набор файлов является единственным вложенным элементом, приведет к тому, что ant попытается применить преобразование к каждому файлу, даже к тем, у которых нет расширений xsl, что неизбежно завершится неудачей при попытке преобразовать документ не в формате XML.
Я использую муравей 1.7.1. Любое руководство будет оценено.