所以這裏是我的問題使用螞蟻與詹金斯創建戰爭時的問題
我有一個ant構建腳本,它創建一個war文件。文件內容如下。
<?xml version="1.0" encoding="UTF-8"?>
<project name="TestProj" default="war" basedir=".">
<property name="project-name" value="${ant.project.name}" />
<property name="builder" value="IaasTeam" />
<property name="war-file-name" value="${project-name}.war" />
<property name="source-directory" value="src" />
<property name="classes-directory" value="build/classes" />
<property name="web-directory" value="WebContent" />
<property name="web-xml-file" value="WebContent/WEB-INF/web.xml" />
<property name="lib.dir" value="WebContent/WEB-INF/lib" />
<property name="catalina.home" value="../../outside/project/lib"/>
<tstamp prefix="build-info">
<format property="current-date" pattern="d-MMMM-yyyy" locale="en" />
<format property="current-time" pattern="hh:mm:ss a z" locale="en" />
</tstamp>
<property name="build-directory" value="build" />
<path id="classpath">
<fileset dir="${lib.dir}" includes="**/*.jar"/>
<fileset dir="${catalina.home}" includes="**/*.jar"/>
</path>
<target name="clean">
<delete dir="build"/>
</target>
<target name="compile">
<mkdir dir="build/classes"/>
<javac includeantruntime="false" srcdir="src" destdir="build/classes" classpathref="classpath" />
</target>
<target name="war" depends="clean,compile">
<mkdir dir="${build-directory}" />
<delete file="${build-directory}/${war-file-name}" />
<war warfile="${build-directory}/${war-file-name}" webxml="${web-xml-file}">
<classes dir="${classes-directory}" />
<fileset dir="${web-directory}">
<!-- Need to exclude it since webxml is an attribute of the war tag above -->
<exclude name="WEB-INF/web.xml" />
</fileset>
<manifest>
<attribute name="Built-By" value="${builder}" />
<attribute name="Built-On" value="${build-info.current-date}" />
<attribute name="Built-At" value="${build-info.current-time}" />
</manifest>
</war>
</target>
我使用詹金斯作爲構建服務器(這是託管在不同機種的開發環境中)
我也用Gitlab作爲一個資源庫,推動最新的代碼我有後一個jenkins作業鉤,自動觸發並調用這個build.xml
現在這裏的問題是,當我在我的本地機器上運行這個腳本一切正常,但是當詹金斯執行它在編譯階段失敗給我下面的錯誤。
compile:
[mkdir] Created dir: /app/infra/jenkins/workspace/TestProj/build/classes
[javac] Compiling 49 source files to /app/infra/jenkins/workspace/TestProj/build/classes
BUILD FAILED
/app/infra/jenkins/workspace/TestProj/build.xml:27: /app/infra/jenkins/outside/project/lib does not exist.
此問題的原因是構建服務器沒有任何directoy稱爲outside/project/lib。
**在我的build.xml中添加這個directoy的唯一原因是讓容器特定的jar文件準備好編譯。
任何人有任何想法如何解決這個問題。
我是否需要在構建服務器上覆制容器特定的罐子? 或 有沒有什麼辦法可以告訴詹金斯不要複製這個外部罐子,只是將它們用於編譯。 我真的很困惑。請幫助。**
好的,我在這裏看到你的觀點,一定會試試這個,謝謝 – 2014-09-30 13:33:17