2012-06-06 28 views
0

我有一个Java Eclipse项目,一个为Tomcat构建的webapp。在Project - > Properties - > Java Build Path - > Libraries中,我添加了Apache Tomcat 7.0 libs,它驻留在我的系统上C:\ dev \ apache-tomcat-7.0.14 \ lib ...在我的系统上该项目工作得很好。由Hudson构建的Eclipse Java项目未命中Tomcat的库

但我想在远程服务器上使用Hudson和Ant构建项目。当Hudson发现SVN发生变化时,它会检查项目并尝试构建并打包它。可悲的是,它找不到来自Tomcat的库,它在远程服务器上放在C:\ xampp \ tomcat \ lib中。当我找到它们时,内置的.war文件被导出到另一台服务器上的另一个tomcat,其中tomcat库位于/ opt/tomcat/lib中。

我该如何解决这个问题?

更新:从我的build.xml

<path id="Apache Tomcat v7.0 [Apache Tomcat v7.0].libraryclasspath"> 
    <pathelement location="../../apache-tomcat-7.0.14/lib/annotations-api.jar"/> 
    <pathelement location="../../apache-tomcat-7.0.14/lib/catalina-ant.jar"/> 
    <pathelement location="../../apache-tomcat-7.0.14/lib/catalina-ha.jar"/> 
    <pathelement location="../../apache-tomcat-7.0.14/lib/catalina-tribes.jar"/> 
    <pathelement location="../../apache-tomcat-7.0.14/lib/catalina.jar"/> 
    <pathelement location="../../apache-tomcat-7.0.14/lib/ecj-3.6.2.jar"/> 
    <pathelement location="../../apache-tomcat-7.0.14/lib/el-api.jar"/> 
    <pathelement location="../../apache-tomcat-7.0.14/lib/jasper-el.jar"/> 
    <pathelement location="../../apache-tomcat-7.0.14/lib/jasper.jar"/> 
    <pathelement location="../../apache-tomcat-7.0.14/lib/jsp-api.jar"/> 
    <pathelement location="../../apache-tomcat-7.0.14/lib/servlet-api.jar"/> 
    <pathelement location="../../apache-tomcat-7.0.14/lib/tomcat-api.jar"/> 
    <pathelement location="../../apache-tomcat-7.0.14/lib/tomcat-coyote.jar"/> 
    <pathelement location="../../apache-tomcat-7.0.14/lib/tomcat-dbcp.jar"/> 
    <pathelement location="../../apache-tomcat-7.0.14/lib/tomcat-i18n-es.jar"/> 
    <pathelement location="../../apache-tomcat-7.0.14/lib/tomcat-i18n-fr.jar"/> 
    <pathelement location="../../apache-tomcat-7.0.14/lib/tomcat-i18n-ja.jar"/> 
    <pathelement location="../../apache-tomcat-7.0.14/lib/tomcat-util.jar"/> 
</path> 
+0

你说你把tomcat的libs添加到了你在eclipse中的构建路径中......但是那些ant脚本呢,它们也被添加了吗? – Christian

+0

添加了build.xml的一部分 – Akku

回答

0

我想这只是一个路径问题(所以../../并不总是Tomcat安装的父目录)。有几个可能性,以解决这个问题,他们两个人可以在这里找到:Hudson dependencies

0

最后我就是这么做的:

设置我的本地系统的环境变量TOMCAT_HOME,哈德逊系统和在目标服务器的系统上。使用下面的构建脚本让我们在Hudson的ANT正确编译代码,这样我的.war就构建在Hudson服务器上。

<path id="Apache Tomcat v7.0 [Apache Tomcat v7.0].libraryclasspath"> 
    <pathelement location="${env.TOMCAT_HOME}/lib/annotations-api.jar"/> 
    <pathelement location="${env.TOMCAT_HOME}/lib/catalina-ant.jar"/> 
    <pathelement location="${env.TOMCAT_HOME}/lib/catalina-ha.jar"/> 
    <pathelement location="${env.TOMCAT_HOME}/lib/catalina-tribes.jar"/> 
    <pathelement location="${env.TOMCAT_HOME}/lib/catalina.jar"/> 
    <pathelement location="${env.TOMCAT_HOME}/lib/ecj-3.6.2.jar"/> 
    <pathelement location="${env.TOMCAT_HOME}/lib/el-api.jar"/> 
    <pathelement location="${env.TOMCAT_HOME}/lib/jasper-el.jar"/> 
    <pathelement location="${env.TOMCAT_HOME}/lib/jasper.jar"/> 
    <pathelement location="${env.TOMCAT_HOME}/lib/jsp-api.jar"/> 
    <pathelement location="${env.TOMCAT_HOME}/lib/servlet-api.jar"/> 
    <pathelement location="${env.TOMCAT_HOME}/lib/tomcat-api.jar"/> 
    <pathelement location="${env.TOMCAT_HOME}/lib/tomcat-coyote.jar"/> 
    <pathelement location="${env.TOMCAT_HOME}/lib/tomcat-dbcp.jar"/> 
    <pathelement location="${env.TOMCAT_HOME}/lib/tomcat-i18n-es.jar"/> 
    <pathelement location="${env.TOMCAT_HOME}/lib/tomcat-i18n-fr.jar"/> 
    <pathelement location="${env.TOMCAT_HOME}/lib/tomcat-i18n-ja.jar"/> 
    <pathelement location="${env.TOMCAT_HOME}/lib/tomcat-util.jar"/> 
</path> 

现在唯一缺少的是我发布构建的工件(.war文件)我的目标系统上与哈德森一些集成插件。