簡體   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