Cruise Control 使用报告
1. Cruise Control 介绍
Cruise Control 是一种持续集成过程的框架,包括了邮件通知,ant 和各类源码控制工具的插件,并提供了 web 接口,用于查看当前和之前的建立的结果。
2. 下载安装
3. 环境配置
下载安装java JDK ,并配置环境变量,新建环境变量如:JAVA_HOME: C:\Program Files\Java\jdk1.6.0_16。
4. 运行界面简单说明
5. 配置文件说明
主配置文件 config.xml 的根元素是<cruisecontrol>,该元素下最主要的<project>。结构以下:
<cruisecontrol>
<project>
<plugin/>
<dateformat/>
<labelincrementer/>
<listeners/>
<bootstrappers/>
<modificationset/>
<schedule/>
<log/>
<publishers/>
</project>
</cruisecontrol>
(1)<plugin >注册插件的信息。
(2)<dateformat >指定日期格式,若是配置了这个部分,会修改默认的日期格式。
(3)<listeners> 在其中指明一些工程的监视信息,如日志信息的写入位置<currentbuildstatuslistener file="logs/MY_PROJECT_1/status.txt"/>
(4)<bootstrappers>的子元素就是Bootstrapper插件的配置信息,如在其中指明ant使用信息
<antbootstrapper anthome="apache-ant-1.7.0" buildfile="projects/${project.name}/build.xml" target="clean" />
(5)<modificationset>包括了 SourceControl 插件的配置信息,用于检查各个源码控制系统中是否发生变化,以下:
<modificationset quietperiod="30">
<filesystem folder="projects/${project.name}" />
</modificationset>
(6)<schedule >指定了建立的时间间隔,<schedule>定时驱动<modificationset>,若是检测到变化,就执行所指定的builder 的任务:
<schedule interval="300">
<ant anthome="apache-ant-1.7.0" buildfile="projects/${project.name}/build.xml" />
</schedule>
(7)<log >指定项目日志保存的地点,主要是合并项目建立过程 junit 测试结果的报表文件(xml)。 <log>的用法很简单,一般是指定 CC 的合并日志的目录就能够了,如:
<log>
<merge dir="projects/${project.name}/target/test-results" />
</log>
(8)<publishers >的子元素包括了 Publisher 插件的配置信息,其中主要元素有<email>,<artifactspublisher>等。<email>主要是用来通知使用者。 最经常使用的用法是根据不一样的结果发送到不一样的邮件列表, 如每次 build,不管成功失败都发送给某个邮件列表,还有失败的时候才发送的邮件列表。 <artifactspublisher>用于对建立过程当中产生的人工制品进行发布
6. 本地应用举例
在C:\Program Files\CruiseControl\projects\HelloWorld\src建立java文件HelloWorld.java,
C:\Program Files\CruiseControl\projects\HelloWorld建立ant构建脚本build.xml。内容以下:
<project name="HelloWorld" default="all">
<target name="all" depends="clean, compile, sleep,jar"/>
<target name="clean">
<delete dir="target" quiet="true" />
</target>
<target name="compile">
<mkdir dir="target/classes"/>
<javac srcdir="src" destdir="target/classes"/>
</target>
<target name="sleep">
<echo message="Sleeping for a while so you can see the build in the new dashboard" />
<sleep seconds="60" />
</target>
<target name="jar" depends="compile">
<jar jarfile="target/HelloWorld.jar" basedir="target/classes"/>
</target>
</project>