一、简介
CruiseControl(以下简称CC)是一个java开源项目,通过Build Loop,完成多个项目的自动构建,官方流程如下:
二、配置
1.将下载好的cruisecontrol-bin-2.8.4.zip解压后,目录结构如下图所示:
2.从官方结构图上可以看出,要让CC自动管理起你的项目,需要2样东西,项目源代码以及config.xml
a.由于CC不支持第一次的项目检出,所以你需要手动地将项目检出到它指定的目录下:projects
假定从SVN检出的项目名称为Test,则projects目录下就应该有个Test的项目存在,并且是受SVN管控的
b.Test目录下必须存在一个pom.xml文件,从而让Maven来管控项目构建,之后会说
c.项目放在对应位置后,接下来就是要配置config.xml文件让CC知道,这也是最重要的部分,配置标签可以参考官doc:http://cruisecontrol.sourceforge.net/main/configxml.html
d:一般配置后的config.xml文件结构如下图所示
<cruisecontrol>
<project name="Test" buildafterfailed="false"> --name和你在projects目录下的项目名必须完全一致。
<listeners> --监听项目的实时状态,如Buliding等
<currentbuildstatuslistener file="logs/${project.name}/status.txt" />
</listeners>
<bootstrappers> --告诉CC从SVN更新代码
<svnbootstrapper localWorkingCopy="projects/${project.name}/"
username="admin" password="admin@" />
</bootstrappers> --监听30秒内项目是否在SVN中有变化。
<modificationset quietperiod="30">
<svn localWorkingCopy="projects/${project.name}/" username="admin" password="admin" useLocalRevision="true" />
</modificationset>
<schedule interval="300"> --每隔300秒,CC就会去检查并执行构建计划
<maven2 mvnscript="D:/apache-maven-2.2.1/bin/mvn.bat" pomfile="projects/${project.name}/pom.xml" goal="clean integration-test" />
</schedule>
<log> --合并编译时产生的测试日志
<merge dir="projects/${project.name}/target/surefire-reports" />
</log>
<publishers>
<onsuccess> --成功后将war包发布到指定位置
<artifactspublisher dest="artifacts/${project.name}"
file="projects/${project.name}/target/Test.war" />
</onsuccess>
<htmlemail mailhost="10.106.3.1" returnaddress="test@qq.com"<span style="white-space:pre"> --发邮件通知相关人
defaultsuffix=""
buildresultsurl="http://localhost:8090/cruisecontrol/buildresults/${project.name}"
charset="UTF-8" skipusers="true">
<always address="yourMail" />
</htmlemail>
</publishers>
</project>
</cruisecontrol>
配置标签官网都有解释,唯一需要注意的就是,因为这里是整合Maven来发布项目,所以这里用的是Maven的指令计划
<schedule interval="30000">
<maven2 mvnscript="D:/apache-maven-2.2.1/bin/mvn.bat" pomfile="projects/${project.name}/pom.xml" goal="clean integration-test" />
</schedule>
需要配置Maven的安装路径,并且通过maven2标签命令解析pom.xml文件执行相关命令
此时,在浏览器中访问http://localhost:8080/dashboard,就可以看到以下页面
绿色表示项目Build成功,红色相反,当然还有其他图标的状态表示,具体参见官网,当点击绿色图标后,就会转,但是由于没有配置Maven,所以CC也只能将War包发布到指定路径,还不能发布到Tomcat上,接下去,只要配置Maven,就可以将他们关联起来