技术开发 频道

Maven2+Subversion+CruiseControl搭建持续集成环境

【IT168 技术文章】

    1.创建Maven2项目,并import到Subversion Repository。
    2.下载CruiseControl,版本2.5。
    3.创建CruiseControl的工作目录,结构如下:

    代码
1.ccworkplace\   
2.      \logs   
3.        \project_name   
4.      \checkout   
5.         \project_name   
6.      \artifacts   
7.         \project_name 

    注:CruiseControl支持构建多个项目,每个项目涉及:logs、checkout、artifacts。它们的作用分别是:记录build结果、checkout代码的工作目录、部件发布地。这个结构就是为了这三个目的而创建的,每一级下的project_name都是对应的。
 
    4.修改%CruiseControl_Home%/ webapps/cruisecontrol/WEB-INF/web.xml:

    - 查找:context-param logDir;修改它的值:…/ccworkplace/logs
    - 查找:ArtifactServlet的init-param rootDir;修改它的值:…/ccworkplace/artifacts

    5. 修改%CruiseControl_Home%/config.xml,内容:

    代码
 1.<cruisecontrol>  
 2.    <property name="cruisedir" value="…/ccworkplace"/>  
 3.    <property name="logdir" value="${cruisedir}/logs"/>  
 4.    <property name="checkoutdir" value="${cruisedir}/checkout"/>  
 5.    <property name="artifactdir" value="${cruisedir}/artifacts"/>  
 6.    
 7.    <project name="codelinecomponents">  
 8.        <listeners>  
 9.            <currentbuildstatuslistener file="${logdir}/${project.name}/status.txt"/>  
10.        </listeners>  
11.        <bootstrappers>  
12.            <svnbootstrapper localWorkingCopy="${checkoutdir}/${project.name}" />  
13.        </bootstrappers>  
14.        <modificationset quietperiod="30">  
15.            <svn localWorkingCopy="${checkoutdir}/${project.name}"/>  
16.        </modificationset>  
17.        <schedule interval="300">  
18.            <maven2 mvnscript="%M2_Home%/bin/mvn.bat"  
19.                    pomfile="${checkoutdir}/${project.name}/pom.xml"  
20.                    goal="clean site package"/>  
21.        </schedule>  
22.        <log dir="${logdir}/${project.name}">  
23.            <merge dir="${checkoutdir}/${project.name}/target/surefire-reports"/>  
24.        </log>  
25.        <publishers>  
26.            <onsuccess>  
27.                <artifactspublisher dest="${artifactdir}/${project.name}"    
28.                            file="${checkoutdir}/${project.name}/target/${project.name}.jar"/>  
29.            </onsuccess>  
30.        </publishers>  
31.    </project>  
32.</cruisecontrol>  

    6.运行%CruiseControl_Home%/cruisecontrol.bat,因为cruisecontrol.bat已经自带了jetty,之后进入:http://localhost:8080/即可。

0
相关文章