为什么要持续集成
持续集成是一种软件开发实践,即团队开发成员经常集成它们的工作,通过每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。
价值:
1、减少风险
一天中进行多次的集成,并做了相应的测试,有利于检查缺陷,了解软件的健康状况,减少假定。
2、减少重复过程
节省时间、费用和工作量,通过自动化的持续集成可以将这些重复的动作都变成自动化的,无需太多人工干预,让人们的时间更多的投入到动脑筋的、更高价值的事情上
3、任何时间、任何地点生成可部署的软件
持续集成可以让我们在任何时间发布可以部署的软件。如果出现问题,项目成员马上就会被通知到,问题会第一时间被修复。
4、增强项目的可见性
真实或最新的数据提供支持,帮组我们注意到趋势并进行有效的决策。
持续集成环境构成
一个完整的持续集成系统由以下几部分组成:
(1)一个自动构建过程,包括自动编译、分发、部署和测试等。可使用ANT或者Maven等工具;
(2)一个代码存储库,即需要版本控制软件来保障代码的可维护性,同时作为构建过程的素材库。例如Subversion、Git、CVS;
(3)一个持续集成服务器。Cruise Control、Jenkins等。
持续集成工具
持续集成服务器有十来种,常用的是Jenkins。
Jenkins (http://jenkins-ci.org/)
CruiseControl (http://cruisecontrol.sourceforge.net/)
Hudson (http://hudson-ci.org/)
LuntBuild (http://luntbuild.javaforge.com/)
TeamCity (http://www.jetbrains.com/teamcity/)
AntHill Pro (https://developer.ibm.com/urbancode/)
Bamboo (http://www.atlassian.co