准备:
一、相关软件:
1、CruiseControl-2.7.3.exe
2、j2sdk-1_4_2_09-windows-i586-p.exe
3、ClearCase 2003.06.00 Base
二、CruiseControl-2.7.3安装路径:D:\CruiseControl
三、环境变量的配置:
1、User Variable: name:JAVA_HOME value:C:\Program Files\j2sdk1.4.2_09\
2、Syatem Variable:name:Path value:C:\Program Files\j2sdk1.4.2_09\bin
小提示:
1、设置环境变量后重启电脑,可通过命令:echo %JAVA_HOME% 可查看是否设置成功。
2、运行cruisecontol.bat,若报错:
org.mortbay.util.MultiException [java.net.BindException: Address already in use: JVM_Bind]
表示cruisecontrol.bat文件中默认的8080端口被占用,可关闭占用该端口的进程解决此问题。
解决办法:cmd -> netstat –nao | findstr 8080,然后根据PID在任务管理器中找到对应的进程关闭即可。
没有报错后,运行cruisecontrol.bat,在IE中输入网址:http://localhost:8080可看到cruisecontrol主页面。
实施:
总的来说,config.xml文件的配置只要参考官方帮助文档config ref来写的话,问题都不是很大。
config ref的网址:http://cruisecontrol.sourceforge.net/main/configxml.html
说明:
1、这是用ClearCase中的实际项目myproject做的cruisecontrol测试,其中用的是我们自己编写的build脚本,没有用到ant或着maven。
2、测试过程中产生的各种log文件都保存在cruisecontrol的安装路径下的log目录中(D:\CruiseControl\logs\myproject),执行myproject的编译脚本build.bat生成的myproject.bin文件保存在cruisecontrol的安装路径下的artifacts目录中(D:\CruiseControl\artifacts\myproject)。另外schedule部分的exec可以按照以下配置内容写,也可以按照官方帮助文档config ref中的exec的例子来写,例子中有显示。
下面是实际的config.xml配置内容:
<cruisecontrol>
<project name="myproject" requiremodification="false">
<listeners>
<currentbuildstatuslistener file="D:\CruiseControl\logs\myproject\listeners_status.txt" />
</listeners>
<bootstrappers>
<currentbuildstatusbootstrapper file="D:\CruiseControl\logs\myproject\bootstrappers_status.txt" />
</bootstrappers>
<modificationset>
<clearcase branch="dev_int_myproject" viewpath="M:\training\myproject " recursive="true" />
</modificationset>
<schedule interval="300" showProgress="true" >
<exec command="D:\CruiseControl\projects\myproject\build.bat" />
<!--exec workingdir="D:\CruiseControl\projects\myproject" command="C:\WINDOWS\system32\cmd.exe"
args="build.bat" /-->
</schedule>
<log dir="D:\CruiseControl\logs\myproject">
<!--merge -->
</log>
<publishers>
<artifactspublisher file=" M:\training\myproject \myproject.bin" dest="D:\CruiseControl\artifacts\myproject" />
<htmlemail mailhost="公司邮件服务器IP"
buildresultsurl="http://localhost:8080/cruisecontrol/buildresults/myproject"
returnaddress="公司邮箱"
spamwhilebroken="true"
subjectprefix="Build"
logdir="D:\cruisecontrol\logs\myproject" >
<always address="公司邮箱"/>
</htmlemail>
</publishers>
</project>
</cruisecontrol>
以上只是个很简单的config.xml的配置,希望能对大家有所帮助。也希望大家能指出不足之处,多交流这方面的经验。
如果用于实际项目请自行修改相关内容。谢谢。
[
本帖最后由 朱雀_陵光 于 2008-9-16 17:36 编辑 ]