持续集成(Continuous Integration) 是极限编程(Extreme Programming )的最佳实践之一。它的首要目标就是及时反馈,能让开发和测试人员更早的发现和解决问题。为了达到这样的效果,你可以选择Anthill 、Luntbuild 、CruiseControl 等工具来辅助你自动完成这些工作。正如标题上提到的,我们今天的主角是CruiseControl ,主要会教你如何配置CruiseControl 来对你的项目进行持续集成。主要的配置步骤如下:
Ø 下载最新版CruiseControl
Ø 配置环境变量
Ø 修改web.xml 配置
Ø Checkout 项目
Ø 修改config.xml
Ø 启动CruiseControl
Ø 总结
下载最新版CruiseControl
目前最新版本的 CruiseControl 为2.6.2 ,直接在官方下载并解压即可,这个比较简单,没有什么特别需要说明的地方。
配置环境变量
由于持续集成的结果报告需要Web Container 的支持, CruiseControl 也自带了Jetty 作为默认的Web Container 。不过我在这里还是以Tomcat 为例,所以需要配置CATALINA_HOME, 当然了,你也需要确保你机器里的JAVA_HOME 是配置正确的。
修改web.xml 配置
我们先将CruiseControl 的报告结果Web 程序拷贝到Tomcat 的webapps 目录,然后打开该程序的web.xml 文件,修改其中的logDir 和currentBuildStatusFile 参数。了logDir 是指定CruiseControl 执行后,为报告生成的日志目录位置,而第二个参数是指定日志状态的文件。
Checkout 项目
你可以通过命令或者IDE 工具从服务器上checkout 你需要的进行持续集成的项目, 也可以checkout 多个项目进行持续集成,这只需要对下面要讲到的config.xml 进行相应的配置即可。
修改config.xml
config.xml 是CruiseControl 的核心配置,主要指明需要测试的项目名、项目的执行脚本、监听变更集、执行任务、以及任务完成后的后续操作。CruiseControl 目录里的config.xml 配置已经能基本满足要求了,你只需要根据你具体的情况做出相应的修改就行了,另外,CruiseControl 提供的配置参数说明也很全,有不明白的可以翻翻。
启动CruiseControl
由于我们没有使用Jetty 作为Web Container ,所以需要修改cruisecontrol.bat 或者cruisecontrol.sh 文件,删除-webport 8080 参数,然后执行该脚本,就能够正常启动了。
总结
由于配置和使用 CruiseControl 并不复杂,所以各步骤都谈得比较简单,如果你在配置和使用过程中遇到无法解决的问题,可以与我交流和讨论。