使用Hudson进行持续集成
?持续集成已成为当前许多软件开发团队在整个软件开发生命周期内侧重于保证代码质量的常见做法。在本系列文章中,Nicholas Whitehead给您介绍Hudson ,一个现在非常流行的开源CI服务器。他将告诉读者在您的应用开发环境下(实例中包含Windows XP+Tomcat6或Ubuntu Linux+JBoss AS )如何搭建一个Hudson服务器环境,还包含了Hudson中许多配置项的概述,和执行一个自动编译、测试、报告过程的示例。
????
???? ?持续集成(CI)是一种实践,旨在缓和和稳固软件的构建过程。CI能够帮助您的开发团队应对如下挑战:
软件构建自动化 :使用CI,您只要按一下按钮,它会依照预先制定的时间表,或者针对某一特定事件,就开始对目标软件进行一次构建过程。想想吧,尤其您从头到尾构建一个构件的时候,这个构建过程应该不会是局限于某一特定IDE、电脑或者个人的。 构建可持续的自动化检查 :CI系统能够设定成持续地执行新增或修改后签入的源代码,也就是说,当软件开发团队需要周期性的检查新增或修改后的代码时,CI系统会不断确认这些新代码是否破坏了原有软件的成功构建。这减少了开发者们在检查彼此相互依存的代码中变化情况需要花费的时间和精力(说直接一点也是钱啊,呵呵)。 构建可持续的自动化测试 :一个构建检查的扩展部分,这个过程确保当新增或修改代码时不会导致预先制定的一套测试在构建构件后失败。构建检查和测试一样,失败都会触发通知单(Email,RSS等等)给相关的当事人,告知对方一次构建或者一些测试失败了。 生成后后续过程的自动化 :一旦自动化检查和测试的构建已经完成,一个软件构件的构建周期中可能也需要一些额外的任务,诸如生成文档、打包软件、部署构件到一个运行环境或者软件仓库。这样,构件才能更迅速地提供给用户使用。??????? 实现一个CI服务器你需要的最低要求是,一个比较容易获取的源代码仓库(包含源代码),一套构建脚本和程序,一系列围绕构件构建的可执行测试。
图1概括了CI系统的基本结构。

?
????该系统的各个组成部分是按如下顺序来发挥作用的:
??? 持续集成 在过去几年因为它的逐渐成熟而颇受欢迎,今天您有不少的CI服务器可供选择,包括商业的和开源的。我个人在同事推荐Hudson 之前已经使用过4个CI服务器。一接触Hudson,它就让我印象深刻。虽然我最初以为Hudson应该不会广为人知,但是在一个名为survey at the Java Power Tools site 的网站显示,在调查谁是最广泛使用的CI服务器时,受访者给它投了37.8%的选票(本文写作之时)。