Ant:[xslt] java.lang.ClassNotFoundException:org.apache.tools.ant.taskdefs.optional.TraXLiaison

时间:2011-03-22 22:15:23

标签: java ant xslt

我有一个Ant版本可以在Windows上正常运行,但是当我把它带到Linux时似乎已经崩溃了。问题出在这里:

  

[xslt] java.lang.ClassNotFoundExceptionorg.apache.tools.ant.taskdefs.optional.TraXLiaison

我已经尝试了以下内容:

  1. xalan.jarxercesImpl.jarxml-apis.jar放入$ANT_HOME/lib目录。
  2. 将它们放入构建文件中的类路径
  3. 安装ant的可选类。
  4. 我正在使用EC2 Linux实例(基本的64位Amazon Linux AMI 2011.02.1 Beta(AMI Id:ami-8e1fece7)Amazon Linux AMI Base 2011.02.1,EBS启动,使用Amazon EC2 AMI的64位架构工具。)

    令人沮丧的是,我已经让它工作了,然后当我把所有东西都装好并将它移到另一台机器上时,两台机器都停止工作了。 :(

2 个答案:

答案 0 :(得分:9)

我从junitreport任务中得到了同样的错误:

build.xml:251: Errors while applying transformations:
java.lang.ClassNotFoundException: org.apache.tools.ant.taskdefs.optional.TraXLiaison

我必须安装ant-trax RPM包以提供此类并修复错误:

$ rpm -ql ant-trax | grep /usr/share/java/ant/ant-trax.jar
/usr/share/java/ant/ant-trax.jar

$ jar tf /usr/share/java/ant/ant-trax.jar | grep TraXLiaison
org/apache/tools/ant/taskdefs/optional/TraXLiaison.class

答案 1 :(得分:4)

假设您正在使用Ant 1.8.1,看起来您遇到了错误,请参阅= https://issues.apache.org/bugzilla/show_bug.cgi?id=49712

org.apache.tools.ant.taskdefs.optional.TraXLiaison类已移动 对于ant-nodeps.jar,也许你只需要把那个jar放在你的路径上。