持续集成是什么?我们为什么需要持续集成?持续集成带来的好处是什么?什么样的项目需要持续集成?...
持续集成(Continuous integration ,简称CI),所谓集成可以理解为将互相依赖的工程或模块合并成一个能单独运行的应用。类似于汽车生产过程中,各种零部件是单独生产并测试的,将他们组装成汽车整体的过程就是“集成”。虽然很多零部件单独测试时是没有问题的,但往往会发生组装好后无法协调工作的情况。为了避免这种情况的发生我们就需要尽早的、不断的去“集成”测试。频繁的集成帮助项目在早期发现项目风险和质量问题,如果到后期才发现这些问题,解决问题代价很大,很有可能导致项目延期或者项目失败。
持续集成给我们带来的好处也是显而易见的,在持续集成过程中我们会很明显的发现那些模块出现了问题,并及时协调修改,否则这个模块会“影响”其他部分运行。
持续集成需要以下几点必要条件支撑:
1.统一的代码库
2.自动、快速构建
3.自动测试
4.定期提交代码
5.可以很容易的获取最新可执行的应用程序
6.自动化的部署
在现代项目开发过程中已经有着非常丰富的持续集成软件支持,我们只需要简单的一些配置就可以打造出一套简单易用,安全稳定的持续集成环境,比较著名的持续集成工具有:CruiseControl ,TeamCity ,Hudson ,Continuum 等。这些CI Server基本都支持项目配置,项目构建,用户管理,错误报告等功能。
Cruise Control: http://cruisecontrol.sourceforge.net/
Hudson: http://hudson-ci.org/
LuntBuild: http://luntbuild.javaforge.com/
TeamCity: http://www.jetbrains.com/teamcity/
AntHill Pro: http://www.anthillpro.com/
Bamboo: http://www.atlassian.com/software/bamboo/
QuickBuild: http://www.pmease.com/
Continuum: http://continuum.apache.org/
下面链接是对市面上常见CI的一个评测:
http://confluence.public.thoughtworks.org/display/CC/CI+Feature+Matrix