繁体   English   中英

哈德森(Hudson)构建的Eclipse Java Project错过了Tomcat的库

[英]Eclipse Java Project built by Hudson misses Tomcat's libs

我有一个Java Eclipse项目,一个为Tomcat构建的web应用程序。 在Project-> Properties-> Java Build Path-> Libraries下,我添加了Apache Tomcat 7.0库,这些库位于系统上的C:\\ dev \\ apache-tomcat-7.0.14 \\ lib ...该项目运行良好。

但是:我想在远程服务器上使用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>

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

最终,我以这种方式做到了:

我在本地系统,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文件)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM