【问题标题】:Eclipse Java Project built by Hudson misses Tomcat's libsHudson 构建的 Eclipse Java 项目缺少 Tomcat 的库
【发布时间】:2012-06-06 12:38:13
【问题描述】:

我有一个 Java Eclipse 项目,一个为 Tomcat 构建的 webapp。在 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>

【问题讨论】:

  • 您说您在 Eclipse 中将 tomcat 库添加到了构建路径中......但是 ant 脚本呢,它们也添加到那里了吗?
  • 添加了build.xml部分

标签: java tomcat hudson jenkins war


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    最后我是这样做的:

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

    【讨论】:

      猜你喜欢
      • 2016-08-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-25
      • 1970-01-01
      相关资源
      最近更新 更多