我正在使用Saxon的ANT任务将XSLT应用于XML。以下是我创建的蚂蚁目标:
<target name="applyXSLT">
<xslt in="${srcXML}" basedir="in/xml" destdir="out/xml" style="${basedir}/src/main/templates/xslt/stylesheet.xslt">
<factory name="net.sf.saxon.TransformerFactoryImpl"/>
<classpath refid="master-classpath" />
<!-- All necessary varibles have been defined before -->
</xslt>
</target>
当XSLT放在项目中的上述文件夹中时,它可以正常工作。但是现在,我需要将XSLT打包为jar的一部分,以便能够将代码分发给第三方客户端。我屏蔽了XSLT,但是现在无法引用它(即使在删除了{base dir}/
之后)。在使用Saxon时,是否有不同的方法来引用作为jar一部分的XSLT?
您可以使用嵌套的style
标记,而不是style
属性,这样您就可以指定任何有效的ant资源。要引用JAR中的文件,您可以使用javaResources
标记。下面的示例将在您的master-classpath
中找到JAR中的XSL文件;如果您愿意,您可以通过内联定义一个新的classpath
来显式指定JAR文件。
<target name="applyXSLT">
<xslt in="${srcXML}" basedir="in/xml" destdir="out/xml">
<style>
<javaresource name="path/within/jar/to/stylesheet.xslt">
<classpath refid="master-classpath"/>
</javaresource>
</style>
<factory name="net.sf.saxon.TransformerFactoryImpl"/>
<classpath refid="master-classpath" />
<!-- All necessary varibles have been defined before -->
</xslt>
</target>
这里有更多关于javaresource
的详细信息。
你试过URL格式吗
jar:///some/dir/!path/within/jar/stylesheet.xsl
撒克逊人意识到了这一点,但我不知道蚂蚁是否能通过它。
否则,我认为您必须先将JAR解压缩到一个临时目录中,然后从那里运行转换。
我正在将一些用于iOS和OSX的Ant构建转换为Gradle。创建了以下内容: 这可能很简单,但我做错了什么?如何从自定义类中调用exec任务?
问题内容: 如何编写一个从先前编译的JAR中删除文件的ant任务? 假设我的JAR文件为: …并且我想要一个没有包的JAR文件版本,我需要使用ant剥离它,以便最终得到一个包含以下内容的JAR: 谢谢! 问题答案: 您是否尝试过使用任务? 例如:
我在用Gradle。我有两个任务:“A”和“B”。我想让任务“A”调用任务“B”。我怎么能这么做? 是否可以简单地从现有任务中调用另一个任务?
我有一个gradle项目,它在build/libs文件夹中生成一个jar(myfoo.jar)。我有几个JUnit测试来测试myfoo.jar中的类。JUnits运行得很好,只是在运行测试时,测试在类路径中使用bin/运行,而类加载器并没有真正加载build/libs/myfoo.jar。测试使用类路径中的bin/运行。所以JUnits只通过了几个。 对于gradle测试任务,有没有办法从类路径中
我有代码: 年级4.5.1对此警告为 但是link没有给我任何可以替换它的提示,因为我不能仅仅设置任务依赖项,比如dependsOn或FinalizdBy--它不是从其他任务调用的,而是从构建的末尾调用的。