假设我有3个ANT项目,每个项目都有一个build.xml脚本,这些脚本位于顶级文件夹中。
ANT脚本是将jar文件放入分发文件夹的脚本。我想在另一个生成WAR文件的项目中使用这些jar文件。
每个项目生成的jar文件用于构建WAR文件。有没有办法配置Jenkins来构建proj1,proj2,proj3然后将jar文件复制到特定位置,该位置包含另一个ANT项目,运行该项目将产生一个war文件?或者必须使用ANT编码?
此外,是否可能在运行ANT构建脚本之前,配置jenkins进行多次检出。我正在使用CVS,并希望在运行构建之前执行三次检出,每次使用不同的标记。
编辑:
昨晚我发布了问题后就去睡觉了。今天再次阅读,我认为问题表述不够清晰,因此我将再次澄清要求。我有4个项目,它们都使用ANT作为构建机制,并且都存储在CVS存储库中。当构建所有4个项目时,会形成一个WAR文件,该文件部署在Tomcat应用程序服务器上。
proj1
file1.java
proj2
file2.java
proj3
file3.java
我已经配置了Jenkins来构建这3个项目,它可以构建并将输出存储在三个单独的文件夹中。
/output/proj1/2012-02-28_20-11-06/proj1/distribution/proj1.jar
/output/proj2/2012-02-28_20-11-08/proj2/distribution/proj2.jar
/output/proj3/2012-02-28_20-11-09/proj3/distribution/proj3.jar
ANT脚本是将jar文件放入分发文件夹的脚本。我想在另一个生成WAR文件的项目中使用这些jar文件。
每个项目生成的jar文件用于构建WAR文件。有没有办法配置Jenkins来构建proj1,proj2,proj3然后将jar文件复制到特定位置,该位置包含另一个ANT项目,运行该项目将产生一个war文件?或者必须使用ANT编码?
此外,是否可能在运行ANT构建脚本之前,配置jenkins进行多次检出。我正在使用CVS,并希望在运行构建之前执行三次检出,每次使用不同的标记。
编辑:
昨晚我发布了问题后就去睡觉了。今天再次阅读,我认为问题表述不够清晰,因此我将再次澄清要求。我有4个项目,它们都使用ANT作为构建机制,并且都存储在CVS存储库中。当构建所有4个项目时,会形成一个WAR文件,该文件部署在Tomcat应用程序服务器上。
proj1
- file1.java
- file2.java
proj2
- file3.java
- file4.java
proj3
- file3.java
- file4.java
proj4
- jsp
- home.jsp
- css
- home.css
- WEB-INF
- lib
- classes
- web.xml
除proj4以外的每个项目都有一个ANT构建文件,该文件构建项目并生成一个JAR文件,将其存储在项目根文件夹上的“distribution”文件夹中。例如,在构建proj1之后,它将如下所示:
proj1
- file1.java
- file2.java
- distribution
- classes
- file1.class
- file2.class
- proj1.jar
Proj4依赖于proj1、proj2和proj3,因为在构建war文件之前,它需要首先将所有的jar文件复制到工作区。项目4的ANT构建文件会从proj1、proj2和proj3中复制JAR文件并构建WAR文件。生成的WAR文件包含以下结构:
proj4
- jsp
- home.jsp
- css
- home.css
- WEB-INF
- lib
- proj1.jar
- proj2.jar
- proj3.jar
- classes
- web.xml
现在要自动化以上内容,我需要以某种方式配置Jenkins和ANT来按照以下顺序执行(如下所示)
- Checkout proj1 from CVS using RELEASE1.1 tag
- Build proj1
- Checkout proj2 from CVS using RELEASE1.2 tag
- Build proj2
- Checkout proj3 from CVS using RELEASE1.1 tag
- Build proj3
- Checkout proj4 from CVS using RELEASE1.1 tag
- Copy the proj1.jar, proj2.jar, proj3.jar from the previous 3 builds and copy them to the proj4 WEB-INF/lib folder.
- Build proj4
- Deploy the WAR file.
我昨天尝试了一下Jenkins,并成功将其配置为构建每个项目,但每个Jar文件最终都会出现在一个不相关的文件夹中。我该如何配置Jenkins以按照我上面描述的方式构建项目?
环境属性如下:
Build tool - ANT
OS - Solaris
可能Maven可以解决这个问题,但目前没有引入Maven的计划。如果有一个简单的类似Maven的构建工具可以用来存储所需的库,并且不需要外部访问,则请告诉我。
提前感谢。