java-将一个第三方JAR的类路径设置为包含另一个Ant

在Ant构建过程中,遇到需要将ant-schematron-2010-04-14.jar与saxon9he.jar整合的问题。当运行构建文件时,由于SAXON JAR未在Schematron的类路径中,导致TransformerFactoryImpl找不到。解决方案是确保在<taskdef>标签的classpath中只包含lib/ant-schematron-2010-04-14.jar,并将saxon9he.jar放入Ant的库文件夹,以便Ant可以识别并解决TransformerFactoryImpl的缺失问题。
摘要由CSDN通过智能技术生成

如何设置一个第三方JAR的类路径以在Ant中包含另一个第三方JAR?

 

我需要使用它来运行从this site开始使用ANT示例的Schemaant香草.(我99%确信您不需要Schematron来回答这个问题.)该示例的说明位于顶部附近的简短PDF链接中.页面.我直接将所有文件的内容从PDF复制粘贴到Eclipse中.

然后,我从上述站点下载了ant-schematron-2010-04-14.jar,并从SAXON SourceForge页面获得了saxon9he.jar.我还更改了构建文件以使其匹配.有行号且无注释,看起来像这样:

 

09 <project name="schematron-ant-sample" default="validate">
14     <taskdef name="schematron"
15              classname="com.schematron.ant.SchematronTask"
16              classpath="lib/ant-schematron-2010-04-14.jar; lib/saxon9he.jar" />
22     <target name="validate" description="Test with a Fileset">
23         <schematron schema="sch/sample.sch" failonerror="false">
24             <fileset dir="xml" includes="*.xml" />
25         </schematron>
26     </target>
27 </project>

运行构建文件时,出现以下错误:

 

validate:

BUILD FAILED
C:\Users\gdawes\Documents\workspace\SchematronAntExample\build.xml:23: /
javax.xml.transform.TransformerFactoryConfigurationError: Provider /
net.sf.saxon.TransformerFactoryImpl not found

Total time: 265 milliseconds

如果在schematron的类路径中未列出SAXON JAR,则会发生类似的错误.我已经确认SAXON JAR中存在TransformerFactoryImpl,但是我不知道如何获取Schematron代码来识别它.我应该如何设置类路径? (或者,如果我错了,并且这不是类路径问题,如何使构建成功?)

最佳答案

< taskdef>中的类路径应该只包含:lib / ant-schematron-2010-04-14.jar,类似于Using Schematron for Ant by example中提供的示例.

 

 

<?xml version="1.0" encoding="UTF-8"?>
<project name="schematron-ant-sample" default="validate">
  <taskdef name="schematron"
      classname="com.schematron.ant.SchematronTask"
      classpath="lib/ant-schematron-2010-04-14.jar" />
  <target name="validate" description="Test with a Fileset">
    <schematron schema="sch/sample.sch" failonerror="false">
      <fileset dir="xml" includes="*.xml" />
    </schematron>
  </target>
</project>

除了更正< taskdef>之外,将saxon9he.jar放在Ant库文件夹中还可以使net.sf.saxon.TransformerFactoryImpl可用并解决该错误(已在使用Ant 1.8.2的Ubuntu Linux上进行了测试).

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值