持续集成(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并不复杂,所以各步骤都谈得比较简单,如果你在配置和使用过程中遇到无法解决的问题,可以与我交流和讨论。