由Hudson构建的Eclipse Java项目错过了Tomcat的库

时间:2012-06-06 12:38:14

标签: java tomcat hudson jenkins war

我有一个Java Eclipse项目,一个为Tomcat构建的webapp。在项目下 - >属性 - > Java构建路径 - >库我添加了Apache Tomcat 7.0库,它位于我的系统C:\ dev \ apache-tomcat-7.0.14 \ lib ...在我的系统上,该项目工作正常。

但是:我想在远程服务器上使用Hudson和Ant构建项目。当Hudson在SVN中发现更改时,它会检出项目并尝试构建和打包它。遗憾的是,它无法从Tomcat中找到libs,远程服务器上的lib放在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>

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

最后我这样做了:

我在本地系统,Hudson系统和目标服务器系统上设置了环境变量TOMCAT_HOME。使用以下构建脚本让我们在Hudson中的ANT正确编译代码,因此我的.war get构建在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>

现在唯一缺少的是我使用Hudson的一些集成插件在我的目标系统上发布了构建工件(.war文件)。