优秀的持续集成工具有很多,如老牌的开源工具CruiseControl、商业的Bamboo和TeamCity等。本书只介绍Hudson,因为它是目前最流行的开源持续集成工具。该项目过去一直托管在java.net社区,不过现在已经迁移到http://hudson-ci.org/。Hudson主要是由Kohsuke Kawaguchi开发和维护的,Kohsuke Kawaguchi自2001年就已经加入Sun公司(当然,现在已经是Oracle了),不过当笔者写下这些文字的时候,他刚宣布离开Sun/Oracle并开始基于Hudson自行创业。
Hudson以其强大的功能和易用的界面征服了大量的用户,它与主流的构建工具、版本控制系统以及自动化测试框架都能进行很好的集成。因此,很多组织和公司选择它作为自己的持续集成工具,如JBoss的http://hudson.jboss.org/hudson/和Sonatype的https://grid.sonatype.org/ci/。
Hudson还有一个优秀之处就是它提供了灵活的插件扩展框架,大量开发者基于这种机制对Hudson进行了扩展。图11-2展示了2006~2009年Hudson插件数量的增长情况,其中黑柱表示当月新发布Hudson插件,白柱表示当月Hudson插件的总数量。该图十分显著地展现了Hudson插件生态系统的健康状况。
图11-2 Hudson插件数量的增长情况