2001年2月,在软件开发各领域有所建树的17位大师联合发表了《敏捷软件开发宣言》,提出了敏捷开发这一概念,至此敏捷软件开发风靡世界,为无数软件开发项目所采用。而在所有这些运用敏捷开发获得成功的软件项目中,运用持续集成工具无疑成为一项最重要的最佳实践,因为它集中体现了敏捷开发的各项思想。
持续集成工具的意义
首先,它促进了项目团队的
沟通与
反馈。想想看,持续集成工具使每个人每天的劳动成功及时发布到应用服务器上。你只要登陆服务器,就可以运行和查看整个项目的每项功能。开发人员可以相互学习各自的设计,需求人员可以确认开发成功是否符合需求,测试人员可以及时测试各项功能。再这样一个平台下,沟通变得简便,反馈也因而变得及时。如果需要,项目组可以随时拿出最新开发成果向客户展示,以便获得他们的反馈。
其次,它促使项目开发过程中的许多工作变得
简单。每天都要无数次地下载最新代码、集成、编译、发布,还要检查代码是否规范,测试各项功能是否正常运行,这是多么巨大而繁琐的工作啊!因为持续集成工具的存在,你只需要及时上传代码,时不时看看反馈结果,多么easy的事情。它使我们腾出了大量时间去做更重要的事情——程序应当怎样设计,这无疑提高了团队工作效率。
另外,它使得
增量与
迭代的开发模式成为了可能。需求人员可以尽早地看到开发成果,以便尽早地与客户确认需求,纠正需求方面的问题;测试人员可以与开发过程并行,使测试工作更加充分,时间更加充足;项目经理则可以更加实时地掌握项目进度,保证项目顺利完成。
最后,它为开发团队提供了机会和
勇气去及时纠正他们的错误。这一点可能不太能让人理解,但却是极度重要的。再有经验的需求分析师也有理解不到位的分析,再有经验的开发工程师也有设计不到位的程序代码。每天集成的工作,为我们及时发现问题提供了条件(问题发现得越晚,付出的代价就越大)。发现问题以后怎么办呢?也许就需要及时的摒弃有问题的代码,及时进行重构。但在过去,我们常常没有这样的勇气去重构,因为害怕它影响其它的程序。这是一个谁多说不清的潜在威胁。而现在,有了持续集成和自动化测试过程,我们可以勇敢地重构代码、彻底地解决问题。
主流的持续集成工具
目前,比较主流的持续集成工具很多,最著名的当数CruiseControl,而当下的新锐则是Hudson。CruiseControl(
http://cruisecontrol.sourceforge.net/)是敏捷大师Martin Flowler旗下的产品,又是免费和开源产品。凭借大师与开源产品的号召力,当仁不让成为持续集成领域的巨无霸。它提供了与几乎所有主流配置管理工具的集成,包括CVS、SVN、VSS、CM Synergy等等,(CruiseControl没有提供对SourceAnyWhere for VSS的支持,但SAWV 5.4以上提供了对CruiseControl.Net的支持)。同时,它提供了对最主流的Ant与Maven构建工具的集成,提供了对.Net和Ruby的支持,功能不可谓不强大。
虽然CruiseControl功能强大,但随着后起之秀的一个个出现,它的劣势被凸显出来,如安装配置过于复杂、功能扩展能力不足等。在众多后起之秀中,Hudson无疑是最耀眼的一个。Hudson(
http://java.net/projects/hudson/)最吸引人的特性是它很容易配置:很难找到如此容易设置的 CI 服务器,也很难找到开箱即用特性如此丰富的CI 服务器。而Hudson 容易使用的另一个原因是它具有强大的插件框架 ,所以很容易添加特性。例如,一个 Hudson 插件可以随时间的推移不断跟踪FindBugs 和代码覆盖。但Hudson只能运行在JDK1.5以上版本,这对于一些老项目来说只能是望洋兴叹。
如何提高研发质量与持续集成
持续集成工具简介
持续集成工具是怎样工作的?
(续)
分享到:
相关推荐
该ppt详细介绍了持续集成工具jenkins的介绍以及安装步骤
hudson.war是基于Java研发的一款持续集成工具的安装包,hudson是一个可以扩展的持续集成引擎,主要是用它来监控一些定时执行的任务、持续、自动地构建/测试软件项目,有需要的欢迎下载使用。 hudson下载,放在tomcat...
持续集成工具 cruisecontrol 配置文件
总结了当前流行的持续集成工具,有开源和收费的。总结的相当到位
Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。
微服务架构下的自动化测试和持续集成工具链
java教程之CI持续集成工具jenkins使用教程.zip
持续集成指的是,频繁地(一天多次)将代码集成到主干。 它的好处主要有两个。 (1)快速发现错误。每完成一点更新,就集成到主干,可以快速发现错误,定位错误也比较容易。 (2)防止分支大幅偏离主干。如果不是...
Java持续集成工具
尽管 CI 实际上是一个过程,但是持续集成 这个词常常与一个或多个工具相关联。在本教程中,讲解如何安装、配置和使用 Hudson 作为 CI 服务器,但是要记住,CI 远不只是个工具。实际上,使用的工具可能是 CI 比较次要...
Jenkins是一个开源软件项目,旨在提供一个开放易用的软件平台,使持续集成变成经济可行 Robot Framework是一款python编写的功能自动化测试框架。具备良好的可扩展性,支持关键字驱动,可以同时测试多种类型的客户端...
http://confluence.public.thoughtworks.org/display/CC/CI+Feature+Matrix 上面的链接是矩阵图的英文版,根据谷歌翻译结合自己的理解翻译的(持续集成工具矩阵图),有不对地方请通知我,谢谢。
NULL 博文链接:https://fannyxjf.iteye.com/blog/714815
持续集成工具,用他可以集成CS,Junit等等!
持续集成工具-CruiseControl配置常见问题
sdhk akd ahdka sdhkahsd kadh ahsdk hasdk sakdh ka sdhkasd hkakdaksdh kas hdk ..........................................................
运行:java -jar jenkins.war --httpPort=8080 访问:http://localhost:8080
持续集成、交付和部署:对方法、工具、挑战和实践的系统回顾.pdf
持续集成工具Jenkins.pdf
LambCI 是一款持续集成系统,在AWS Lambda上构建,并且集成了 Slack 。目前已经支持大部分主流语言了,比如:C,Java,Python, Nodejs,Go,Rust,Ruby 等等。类似 Jenkins, Travis 和 CircleCI。使用效果图:特性:...