Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hudson构建的Eclipse Java项目错过了Tomcat';自由泳_Java_Tomcat_Hudson_Jenkins_War - Fatal编程技术网

Hudson构建的Eclipse Java项目错过了Tomcat';自由泳

Hudson构建的Eclipse Java项目错过了Tomcat';自由泳,java,tomcat,hudson,jenkins,war,Java,Tomcat,Hudson,Jenkins,War,我有一个JavaEclipse项目,一个为Tomcat构建的webapp。在项目-->属性-->Java构建路径-->库下,我添加了Apache Tomcat 7.0 libs,它位于我的系统中的C:\dev\Apache-Tomcat-7.0.14\lib。。。在我的系统中,这个项目运行得非常好 但是:我想在远程服务器上使用Hudson和Ant构建这个项目。当Hudson在SVN中发现变化时,它会检查项目并尝试构建和打包它。遗憾的是,它找不到来自Tomcat的lib,远程服务器上的lib位于C

我有一个JavaEclipse项目,一个为Tomcat构建的webapp。在项目-->属性-->Java构建路径-->库下,我添加了Apache Tomcat 7.0 libs,它位于我的系统中的C:\dev\Apache-Tomcat-7.0.14\lib。。。在我的系统中,这个项目运行得非常好

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

我如何解决这个问题

更新:来自my 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>


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

最后我这样做了:

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

<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文件)。

你说你在eclipse中将tomcat libs添加到了构建路径中。。。但是ant脚本呢,它们也添加到那里了吗?添加了build.xml的一部分