我尝试了几种方法在与hudson相同的服务器上安装ant和junit。我最终下载了Ant源代码,通过使用包含的fetch.xml文件安装了可选的依赖项,构建了源代码,并将junit-4.8.1.jar放到了我刚刚构建的编译好的ant代码所在的lib目录中。然后使用"export _HOME=/usr/share/ ant“命令将ANT_HOME设置为ant根目录。我还使用相同的值(/usr/share/ant)设置了一个" ANT_HOME“配置变量,并将一个新文件放入/etc/profile.d目录中,并使用导出ANT_HOME命令。此时,我不确定还可以尝试什么,但是Hudson仍然给出了错误:
构建FAILED /var/lib/hudson/jobs/MyProject/build.xml:31:问题:未能创建任务或类型junit原因:找不到类org.apache.tools.ant.taskdefs.optional.junit.JUnitTask。这看起来像是Ant的可选组件之一。操作:检查适当的可选JAR是否存在于-/usr/share/ant/lib -/var/lib/hudson/.ant/lib -a目录中,该目录添加在带有-lib参数的命令行中 不要惊慌,这是一个常见的问题。最常见的原因是一个丢失的罐子。 这不是错误,而是配置问题。
实际上,我检查了/usr/share/ant/lib,并且类"org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.class“位于ant-junit jar文件中,我通过运行命令jar tfv ant-junit.jar | grep org.apache.tools.ant.taskdefs.optional.junit.JUnitTask确认了这一点。
有人能告诉我该怎么做吗,我不知道从这里往哪里走。
发布于 2012-08-01 10:20:43
如果您在Ubuntu上,您可以简单地获得ant;我这样做了,并链接到项目中的junit jar。
干杯,
尼尔
发布于 2012-08-14 15:49:49
事实证明,hudson本身在自己的库中安装了Ant的某些版本。我想这会引起冲突,因为当我摆脱它的时候,事情就开始了。我认为它在/var/hudson或/var/hudson/lib中。该路径在hudson安装期间添加到path环境变量中。因此,您的选择是将自己的Ant安装添加到路径的开头,删除hudson版本的Ant,或者删除路径的这一部分。
https://stackoverflow.com/questions/11749683
复制相似问题