我正在尝试使用ant来使用XSLT预处理我的项目中的三个特定样式表。 Ant documentation for the xslt task表示它应该能够接受任何资源收集。具体来说,它说:如何在ant中指定xml文档进行资源收集转换?
使用资源集合来指定样式表应该应用到的资源。使用嵌套映射器和任务的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文档时不可避免地会失败。
我正在使用ant 1.7.1。任何指导将不胜感激。