[阅读: 675] 2009-12-14 01:23:48
持续集成工具
王海鹏(sealwang@gmail.com)
引言
Thomas Carlyle说:“人类是使用工具的动物。没有工具,人什么都不是;有了工具,人无所不能。”金融家们创造了复杂的金融工具,并利用这些工具制造了财富神话,制造了著名的跨国公司,也制造了世界范围的危机。软件精英们为了让自己的工作效率更高,有更多时间去做想做的事,也创造了各式各样的工具。持续集成已经不是一个新概念,在这个概念发展的十多年间,出现了支持这一概念的众多工具。这些工具的组合使用,为软件开发提供了强大的支持。
持续集成工具的分类和功能
一般来说,持续集成工具可以分成两大类:自动化构建工具和构建计划安排工具。
自动化构建工具有这样一些基本功能:代码编译、组件打包、程序执行和文件操作。编译源代码是构建的主要工作之一,为了提高效率,编译应该根据相应的源代码是否发生改变而有条件地执行。组件打包是将编译的结果和其他需要包含的文件组织在一起,形成可以部署的组件。构建工具应该知道何时需要重新打包。程序执行是指构建工具能够在它支持的平台上,调用所有提供命令行接口的程序。构建工具应该支持创建、拷贝、删除文件和目录等操作。
某些自动化构建工具还有一些扩展功能:执行开发者测试、版本控制工具集成、文档集成、部署功能、代码品质分析、支持扩展、多平台构建、加速构建。虽然构建工具可以通过命令行执行的方式来集成构建工具和测试工具,但如果它提供更直接的集成方式,开发者就更省力。同样,如果构建工具能够直接与版本控制工具集成,开发者也会觉得更方便。文档集成是指构建工具能够自动从源代码中抽取并生成API文档。构建工具还可以将打包好的组件自动部署到目标测试环境中去。构建工具一般通过一些第三方插件,支持对代码品质进行分析。而提供插件接口,是构建工具实现可扩展性的通用方式。如果您开发的软件需要在多个平台上构建并测试,那么构建工具对多平台的支持就会带来极大的方便。对于较大的代码集,一次构建可能需要好几个小时,这为持续集成带来了一些挑战。有的构建工具支持加速构建,即在多个构建服务器的多个处理器上进行分布式构建。
常见的自动化构建工具包括Ant、NAnt、MSBuild、make、maven、Rake等。
构建计划安排工具有这样一些基本功能:构建执行、版本控制集成、构建工具集成、提供反馈、为构建打上标签。构建计划安排工具的核心功能就是在特定时间执行自动化的构建,这可以通过轮询版本控制库、计划驱动或事件通知等方式来实现。大部分构建计划安排工具都支持大多数流行的版本控制系统,也支持大多数流行的构建工具。构建计划安排工具至少支持通过电子邮件提供反馈信息,有一些工具可以通过即时消息、手机短信或其他设备来提供反馈。大多数构建计划安排工具会提供某种类型的升序计数,作为构建版本的标签。
某些构建计划安排工具还有一些扩展功能:支持项目间依赖关系、提供用户界面、制品发布、安全。如果项目间存在依赖关系,您可能希望在被依赖的项目重新构建时,重新构建依赖于它的项目。设计良好的用户界面会在工作时为您节约时间。制品发布是指除了得到可部署的组件之外,一些成熟的某些构建计划安排工具可以将文档、测试结果、品质分析结构和其他测量指标数据格式化,便于查看。有一些工具提供了身份认证和授权等安全方面的功能,允许您指定谁能查看结果和修改配置。
常见的构建计划安排工具包括AnthillPro、Continuum、CruiseControl、CruiseControl.NET、Draco.NET、Luntbuild、Hudson等。
下面介绍两个颇具代表性的工具:Ant和Hudson。
Ant
Hudson
工欲善其事,必先利其器。人是工具的主宰。A fool with a tool is still a fool(傻子拿着工具还是傻子)。人们总是在学习工具、使用工具、创造更好的工具,以期提高工作的效率和品质。人要有智慧,工具要先进。