一 CruiseControl安装
1) 安装JAVA SDK,设置JAVA_HOME环境变量,且将%JAVA_HOME%\bin加入path环境变量。
2) 下载CruiseControl,例如2.8.3版本为cruisecontrol-bin-2.8.3.zip,解压到C:\CruiseControl。
3) CruiseControl的binary安装中已经包含了ant builder / jetty(提供http server and jmx 对webapps下的cruisecontrol[result/report JSP page] 和 dashboard支持) ,安装后如下:
二 配置
以CruiseControl自带实例connectfour为例,配置文件如下:
1)config.xml
<
cruisecontrol
>
<
project
name
="connectfour"
>
<
listeners
>
<
currentbuildstatuslistener
file
="logs/${project.name}/status.txt"
/>
</
listeners
>
<
bootstrappers
>
<
antbootstrapper
anthome
="apache-ant-1.7.0"
buildfile
="projects/${project.name}/build.xml"
target
="clean"
/>
</
bootstrappers
>
<
modificationset
quietperiod
="30"
>
<!--
touch any file in connectfour project to trigger a build
-->
<
filesystem
folder
="projects/${project.name}"
/>
</
modificationset
>
<
schedule
interval
="300"
>
<
ant
anthome
="apache-ant-1.7.0"
buildfile
="projects/${project.name}/build.xml"
/>
</
schedule
>
<
log
>
<
merge
dir
="projects/${project.name}/target/test-results"
/>
</
log
>
<
publishers
>
<
onsuccess
>
<
artifactspublisher
dest
="artifacts/${project.name}"
file
="projects/${project.name}/target/${project.name}.jar"
/>
</
onsuccess
>
</
publishers
>
</
project
>
</
cruisecontrol
>
2)dashboard-config.xml
<?
xml version="1.0" encoding="UTF-8"
?>
<
dashboard
>
<
buildloop
logsdir
=""
artifactsdir
=""
/>
<
features
allowforcebuild
=""
/>
<
trackingtool
projectname
=""
baseurl
=""
keywords
=""
/>
<
subtabs
>
<
subtab
class
="net.sourceforge.cruisecontrol.dashboard.widgets.ErrorsAndWarningsMessagesWidget"
/>
</
subtabs
>
</
dashboard
>
三 运行
1) 运行CruiseControl.bat来启动CruiseControl,
REM CruiseControl.bat
REM
Set this if you're using SSH-based CVS
REM
set CVS_RSH=
REM
Uncomment the following line if you have OutOfMemoryError errors
REM
set CC_OPTS=-Xms128m -Xmx256m
REM
The root of the CruiseControl directory. The key requirement is that this is the parent
REM
directory of CruiseControl's lib and dist directories.
REM
By default assume they are using the batch file from the local directory.
REM
Acknowledgments to Ant Project for this batch file incantation
REM
%~dp0 is name of current script under NT
set
CCDIR
=
%~dp0
:checkJava
if
not
defined JAVA_HOME
goto
noJavaHome
set
JAVA_PATH
=
"
%JAVA_HOME%\bin\java
"
set
CRUISE_PATH
=
%JAVA_HOME%
\
lib
\
tools
.
jar
goto
setCruise
:noJavaHome
echo
WARNING: You have
not
set
the JAVA_HOME environment variable
.
Any tasks relying
on
the tools
.
jar file
(
such as
"
<javac>
"
)
will
not
work properly
.
set
JAVA_PATH
=
java
:setCruise
set
LIBDIR
=
%CCDIR%lib
set
LAUNCHER
=
%LIBDIR%
\
cruisecontrol-launcher
.
jar
set
JETTY_LOGS
=
%CCIDR%logs
set
EXEC
=
%JAVA_PATH% %CC_OPTS% -Djavax
.
management
.
builder
.
initial
=
mx4j
.
server
.
MX4JMBeanServerBuilder
"
-Djetty.logs=%JETTY_LOGS%
"
-jar
"
%LAUNCHER%
"
%* -jmxport
8000
-webport
8080
-rmiport
1099
echo
%EXEC%
%EXEC%
2) CruiseControl的启动log
2010
-
07
-
19
04
:
42
:
51
,
712
[main ] INFO Main - CruiseControl Version
2.8
.
3
Compiled
on
January
24
2010
2134
2010
-
07
-
19
04
:
42
:
51
,
805
[main ] INFO XMLConfigManager - reading settings from config file [C:
\
CruiseControl
\
config
.
xml]
2010
-
07
-
19
04
:
42
:
52
,
446
[main ] INFO CruiseControlController - projectName
=
[connectfour]
2010
-
07
-
19
04
:
42
:
52
,
446
[main ] INFO XMLConfigManager - using settings from config file [C:
\
CruiseControl
\
config
.
xml]
2010
-
07
-
19
04
:
42
:
52
,
477
[main ] WARN ProjectConfig - No previously serialized project found [C:
\
CruiseControl
\
connectfour
.
ser]
,
forcing a build
.
2010
-
07
-
19
04
:
42
:
52
,
477
[main ] INFO Project - Project connectfour starting
2010
-
07
-
19
04
:
42
:
52
,
477
[main ] INFO Project - Project connectfour: idle
2010
-
07
-
19
04
:
42
:
52
,
509
[Project connectfour thread] INFO Project - Project connectfour started
2010
-
07
-
19
04
:
42
:
52
,
540
[Project connectfour thread] INFO Project - Project connectfour: in build queue
2010
-
07
-
19
04
:
42
:
53
,
665
[main ] INFO CruiseControlControllerAgent - Starting HttpAdaptor with CC-Stylesheets
2010
-
07
-
19
04
:
42
:
53
,
743
[main ] INFO CruiseControlControllerAgent - starting httpAdaptor
2010
-
07
-
19
04
:
42
:
54
,
071
[main ] INFO CruiseControlControllerAgent - starting rmiRegistry
2010
-
07
-
19
04
:
42
:
56
,
384
[main ] INFO CruiseControlControllerAgent - starting connectorServer
2010
-
07
-
19
04
:
43
:
18
,
555
[BuildQueueThread] INFO BuildQueue - BuildQueue started
2010
-
07
-
19
04
:
43
:
18
,
555
[BuildQueueThread] INFO BuildQueue - now adding to the thread queue: connectfour
2010
-
07
-
19
04
:
43
:
18
,
618
[Thread-
21
] INFO Project - Project connectfour: bootstrapping
2010
-
07
-
19
04
:
43
:
18
,
665
[Thread-
21
] INFO ProjectController - connectfour Controller: build progress event: bootstrapping
2010
-
07
-
19
04
:
43
:
23
,
102
[Thread-
23
] INFO ScriptRunner - Buildfile: projects
\
connectfour
\
build
.
xml
2010
-
07
-
19
04
:
43
:
23
,
321
[Thread-
23
] INFO ScriptRunner -
2010
-
07
-
19
04
:
43
:
23
,
321
[Thread-
23
] INFO ScriptRunner - clean:
2010
-
07
-
19
04
:
43
:
23
,
462
[Thread-
23
] INFO ScriptRunner - [delete] Deleting directory C:
\
CruiseControl
\
projects
\
connectfour
\
target
2010
-
07
-
19
04
:
43
:
23
,
993
[Thread-
23
] INFO ScriptRunner -
2010
-
07
-
19
04
:
43
:
23
,
993
[Thread-
23
] INFO ScriptRunner - BUILD SUCCESSFUL
2010
-
07
-
19
04
:
43
:
23
,
993
[Thread-
23
] INFO ScriptRunner - Total
time
:
0
seconds
2010
-
07
-
19
04
:
43
:
24
,
196
[Thread-
21
] INFO AntBootstrapper - Bootstrap successful
.
2010
-
07
-
19
04
:
43
:
24
,
212
[Thread-
21
] INFO Project - Project connectfour: checking
for
modifications
2010
-
07
-
19
04
:
43
:
24
,
212
[Thread-
21
] INFO ProjectController - connectfour Controller: build progress event: checking
for
modifications
2010
-
07
-
19
04
:
43
:
24
,
509
[Thread-
21
] INFO Project - Project connectfour: No modifications found
,
build
not
necessary
.
2010
-
07
-
19
04
:
43
:
24
,
509
[Thread-
21
] INFO Project - Project connectfour: Building anyway
,
since build was explicitly forced
.
2010
-
07
-
19
04
:
43
:
24
,
509
[Thread-
21
] INFO Project - Project connectfour: now building
2010
-
07
-
19
04
:
43
:
24
,
509
[Thread-
21
] INFO ProjectController - connectfour Controller: build progress event: now building
2010
-
07
-
19
04
:
43
:
25
,
305
[Thread-
25
] INFO ScriptRunner - Buildfile: projects
\
connectfour
\
build
.
xml
2010
-
07
-
19
04
:
43
:
25
,
540
[Thread-
25
] INFO ScriptRunner - ccAntProgress -- clean
2010
-
07
-
19
04
:
43
:
25
,
602
[Thread-
25
] INFO ScriptRunner - ccAntProgress -- compile
2010
-
07
-
19
04
:
43
:
25
,
665
[Thread-
25
] INFO ScriptRunner - [
mkdir
] Created
dir
: C:
\
CruiseControl
\
projects
\
connectfour
\
target
\
classes
2010
-
07
-
19
04
:
43
:
26
,
446
[Thread-
25
] INFO ScriptRunner - [javac] Compiling
10
source
files
to C:
\
CruiseControl
\
projects
\
connectfour
\
target
\
classes
2010
-
07
-
19
04
:
43
:
34
,
118
[Thread-
25
] INFO ScriptRunner - ccAntProgress -- sleep
2010
-
07
-
19
04
:
43
:
34
,
149
[Thread-
25
] INFO ScriptRunner - [
echo
] Sleeping
for
a while so you can see the build in the new dashboard
2010
-
07
-
19
04
:
44
:
34
,
805
[Thread-
25
] INFO ScriptRunner - ccAntProgress -- test
2010
-
07
-
19
04
:
44
:
35
,
555
[Thread-
25
] INFO ScriptRunner - [
mkdir
] Created
dir
: C:
\
CruiseControl
\
projects
\
connectfour
\
target
\
test-classes
2010
-
07
-
19
04
:
44
:
40
,
290
[Thread-
25
] INFO ScriptRunner - [javac] Compiling
2
source
files
to C:
\
CruiseControl
\
projects
\
connectfour
\
target
\
test-classes
2010
-
07
-
19
04
:
45
:
08
,
384
[Thread-
25
] INFO ScriptRunner - [
mkdir
] Created
dir
: C:
\
CruiseControl
\
projects
\
connectfour
\
target
\
test-results
2010
-
07
-
19
04
:
45
:
10
,
243
[Thread-
25
] INFO ScriptRunner - [junit] Running
net
.
sourceforge
.
cruisecontrol
.
sampleproject
.
connectfour
.
CellTest
2010
-
07
-
19
04
:
45
:
10
,
243
[Thread-
25
] INFO ScriptRunner - [junit] Testsuite:
net
.
sourceforge
.
cruisecontrol
.
sampleproject
.
connectfour
.
CellTest
2010
-
07
-
19
04
:
45
:
14
,
196
[Thread-
25
] INFO ScriptRunner - [junit] Tests
run
:
1
,
Failures:
0
,
Errors:
0
,
Time
elapsed:
3.953
sec
2010
-
07
-
19
04
:
45
:
14
,
196
[Thread-
25
] INFO ScriptRunner - [junit] Tests
run
:
1
,
Failures:
0
,
Errors:
0
,
Time
elapsed:
3.953
sec
2010
-
07
-
19
04
:
45
:
14
,
212
[Thread-
25
] INFO ScriptRunner - [junit]
2010
-
07
-
19
04
:
45
:
14
,
805
[Thread-
25
] INFO ScriptRunner - [junit] Running
net
.
sourceforge
.
cruisecontrol
.
sampleproject
.
connectfour
.
PlayingStandTest
2010
-
07
-
19
04
:
45
:
14
,
805
[Thread-
25
] INFO ScriptRunner - [junit] Testsuite:
net
.
sourceforge
.
cruisecontrol
.
sampleproject
.
connectfour
.
PlayingStandTest
2010
-
07
-
19
04
:
45
:
14
,
837
[Thread-
25
] INFO ScriptRunner - [junit] Tests
run
:
10
,
Failures:
0
,
Errors:
0
,
Time
elapsed:
0.032
sec
2010
-
07
-
19
04
:
45
:
14
,
837
[Thread-
25
] INFO ScriptRunner - [junit] Tests
run
:
10
,
Failures:
0
,
Errors:
0
,
Time
elapsed:
0.032
sec
2010
-
07
-
19
04
:
45
:
14
,
837
[Thread-
25
] INFO ScriptRunner - [junit]
2010
-
07
-
19
04
:
45
:
14
,
852
[Thread-
25
] INFO ScriptRunner - ccAntProgress -- jar
2010
-
07
-
19
04
:
45
:
15
,
149
[Thread-
25
] INFO ScriptRunner - [jar] Building jar: C:
\
CruiseControl
\
projects
\
connectfour
\
target
\
connectfour
.
jar
2010
-
07
-
19
04
:
45
:
15
,
430
[Thread-
25
] INFO ScriptRunner - ccAntProgress -- all
2010
-
07
-
19
04
:
45
:
15
,
430
[Thread-
25
] INFO ScriptRunner -
2010
-
07
-
19
04
:
45
:
15
,
446
[Thread-
25
] INFO ScriptRunner - BUILD SUCCESSFUL
2010
-
07
-
19
04
:
45
:
15
,
446
[Thread-
25
] INFO ScriptRunner - Total
time
:
1
minute
49
seconds
2010
-
07
-
19
04
:
45
:
16
,
259
[Thread-
21
] INFO ProjectController - connectfour Controller: build result event: build successful
2010
-
07
-
19
04
:
45
:
16
,
259
[Thread-
21
] INFO Project - Project connectfour: merging accumulated log
files
2010
-
07
-
19
04
:
45
:
16
,
274
[Thread-
21
] INFO ProjectController - connectfour Controller: build progress event: merging accumulated log
files
2010
-
07
-
19
04
:
45
:
16
,
415
[Thread-
21
] INFO Project - Project connectfour: build successful
2010
-
07
-
19
04
:
45
:
16
,
493
[Thread-
21
] INFO Project - Project connectfour: publishing build results
2010
-
07
-
19
04
:
45
:
16
,
493
[Thread-
21
] INFO ProjectController - connectfour Controller: build progress event: publishing build results
2010
-
07
-
19
04
:
45
:
17
,
009
[Thread-
21
] INFO Project - Project connectfour: idle
2010
-
07
-
19
04
:
45
:
17
,
009
[Thread-
21
] INFO ProjectController - connectfour Controller: build progress event: idle
2010
-
07
-
19
04
:
45
:
17
,
087
[Project connectfour thread] INFO Project - Project connectfour: next build in
5
minutes
2010
-
07
-
19
04
:
45
:
17
,
087
[Project connectfour thread] INFO Project - Project connectfour: waiting
for
next
time
to build
2010
-
07
-
19
04
:
45
:
17
,
087
[Project connectfour thread] INFO ProjectController - connectfour Controller: build progress event: waiting
for
next
time
to build
3)connectfour的ant的log
Buildfile: projects
\
connectfour
\
build
.
xml
ccAntProgress -- clean
ccAntProgress -- compile
[
mkdir
] Created
dir
: C:
\
CruiseControl
\
projects
\
connectfour
\
target
\
classes
[javac] Compiling
10
source
files
to C:
\
CruiseControl
\
projects
\
connectfour
\
target
\
classes
ccAntProgress -- sleep
[
echo
] Sleeping
for
a while so you can see the build in the new dashboard
ccAntProgress -- test
[
mkdir
] Created
dir
: C:
\
CruiseControl
\
projects
\
connectfour
\
target
\
test-classes
[javac] Compiling
2
source
files
to C:
\
CruiseControl
\
projects
\
connectfour
\
target
\
test-classes
[
mkdir
] Created
dir
: C:
\
CruiseControl
\
projects
\
connectfour
\
target
\
test-results
[junit] Running
net
.
sourceforge
.
cruisecontrol
.
sampleproject
.
connectfour
.
CellTest
[junit] Testsuite:
net
.
sourceforge
.
cruisecontrol
.
sampleproject
.
connectfour
.
CellTest
[junit] Tests
run
:
1
,
Failures:
0
,
Errors:
0
,
Time
elapsed:
3.953
sec
[junit] Tests
run
:
1
,
Failures:
0
,
Errors:
0
,
Time
elapsed:
3.953
sec
[junit]
[junit] Running
net
.
sourceforge
.
cruisecontrol
.
sampleproject
.
connectfour
.
PlayingStandTest
[junit] Testsuite:
net
.
sourceforge
.
cruisecontrol
.
sampleproject
.
connectfour
.
PlayingStandTest
[junit] Tests
run
:
10
,
Failures:
0
,
Errors:
0
,
Time
elapsed:
0.032
sec
[junit] Tests
run
:
10
,
Failures:
0
,
Errors:
0
,
Time
elapsed:
0.032
sec
[junit]
ccAntProgress -- jar
[jar] Building jar: C:
\
CruiseControl
\
projects
\
connectfour
\
target
\
connectfour
.
jar
ccAntProgress -- all
BUILD SUCCESSFUL
Total
time
:
1
minute
49
seconds
4)build后通过curisecontrol page(report JSP)查看结果
5)build后通过dashborad来查看结果
6)build后通过dashboard的build tab来查看build统计
7)通过JMX来管理
完!