1. 认识CruiseControlCruiseControl是CI服务器的老者,诞生已是多年,在许多方面,CruiseControl服务器已经成为持续集成实践的同义词。而现在,CruiseControl已发展成为一个家族式系统,、、,其强大的插件和扩展能力也是诸多同类系统无法比你的。而在这里,,即CruiseControl。下图是CruiseControl系统的架构图: CruiseControl系统架构图图中我们可以看到,CruiseControl系统的主体是BuildLoop机制,它采用了SourceCode轮询机制,对持续集成环境的状态进行定时检测,。CruiseControl服务器则使用HTTP和RMI机制将持续集成服务公开到Reporting模块,同时使用XML数据格式对每次集成的数据进行归档。同时CruiseControl还可以集成了RSS、IM、E-MAIL等信息发布机制,最大程度将信息广播到团队的每个成员。CruiseControl系统集成循环的流程图见下图,图中显示了CruiseControl使用轮询机制对版本库进行检测,并对发生变更的代码进行预定操作的流程:CruiseControl系统运行流程图2. CruiseControl的安装CruiseControl的安装有许多方式。例如,如果使用Windows,会发现最简单的方式是下载二进制可执行文件,然后运行它。不用担心,还可以下载源代码。安装之后,CruiseControl预先配置了一个配置文件,轮询CVS(或其它版本控制系统)存储库并执行ANT构建脚本。服务环境不需要安装Web服务器,CruiseControl已经内嵌了Jettyweb服务程序。3. CruiseControl的配置当CruiseControl服务器启动时,会自动检测配置信息中的任务信息,并对其进行校验和初始化,之后所有的工作,都是依据该配置信息进行的。,我们可以通过任一文本编辑器打开该配置文件,编辑各种配置信息。配置信息的定义遵循了标准XML文件格式,同时遵循了ANT自动构建配置信息的规则,因此建立一个普通工程的配置信息并非难事。一个典型的配置文件如下所示:<cruisecontrol> <projectname="BMSAssess"> <listeners> <currentbuildstatuslistenerfile="logs/${}/"/> </listeners> <bootstrappers> <svnbootstrapperlocalWorkingCopy="projects/BMS/${}"/> </bootstrappers> <modificationsetquietperiod="30"> <svnlocalWorkingCopy="projects/BMS/${}/src/${}"/> </modificationset> <scheduleinterval="300"> <antanthome="apache-ant-"buildfile="projects/BMS/${}/src/${}/"/> </schedule> <log> <mergedir="projects/BMS/log/${}/target/test-results"/> </log> </project></cruisecontrol>配置文件有一个cruisecontrol根结点,其下则是代表一个项目的project子节点,再下层是项目的具体配置,在此示例中,存在了listeners、bootstrappers、modificationset、schedule、log几个节点,分别代表了监听器、本地目录、变更目录、构建任务、日志工作。. 创建一个项目<projectname="BMSAssess">
CruiseControl持续集成 来自淘豆网m.daumloan.com转载请标明出处.