【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/即可。