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>