没有合适的资源?快使用搜索试试~ 我知道了~
持续集成,写的比较详细,也很全面,学习持续集成必看,是个不错的文档
资源推荐
资源详情
资源评论
持续集成学习总结
(一)持续集成概述
1.定义
大师 Martin Fowler 对持续集成是这样定义的:
持续集成是一种软件开发实践,即团队开发成员经常集成它们的工作,通常每个成员每
天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建
(包括编译,发布,自动化测试)来验证,从而尽快地发现集成错误。许多团队发现这个过
程可以大大减少集成的问题,让团队能够更快的开发内聚的软件。
2.原则
(1)所有的开发人员需要在本地机器上做本地构建,然后再提交的版本控制库中,从
而确保他们的变更不会导致持续集成失败。
(2)开发人员每天至少向版本控制库中提交一次代码。
(3)开发人员每天至少需要从版本控制库中更新一次代码到本地机器。
(4)需要有专门的集成服务器来执行集成构建,每天要执行多次构建。
(5)每次构建都要 100%通过。
(6)每次构建都可以生成可发布的产品。
(7)修复失败的构建是优先级最高的事情。
3.要素
统一的代码库
自动构建
自动测试
每个人每天都要向代码库主干提交代码
每次代码递交后都会在持续集成服务器上触发一次构建
保证快速构建
模拟生产环境的自动测试
每个人都可以很容易的获取最新可执行的应用程序
每个人都清楚正在发生的状况
自动化的部署
4.周期
一个典型的持续集成周期包括以下几个步骤:
持续集成服务器不断从版本控制服务器上检查代码状态,看代码是否有更新。
如果发现代码有最新的提交,那么就从版本控制服务器下载最新的代码。
等代码完全更新以后,调用自动化编译脚本,进行代码编译。
运行所有的自动化测试。
进行代码分析。
产生可执行的软件,能够提供给测试人员进行测试。
5.价值
持续集成的价值在于:
﹡减少风险
一天中进行多次的集成,并做了相应的测试,这样有利于检查缺陷,了解软件的健康
状况,减少假定。
﹡减少重复过程
减少重复的过程可以节省时间、费用和工作量。说起来简单,做起来难。这些浪费时
间的重复劳动可能在我们的项目活动的任何一个环节发生,包括代码编译、数据库 集成、
测试、审查、部署及反馈。通过自动化的持续集成可以将这些重复的动作都变成自动化的,
无需太多人工干预,让人们的时 间更多的投入到动脑筋的、更高价 值的事情上。
﹡任何时间、任何地点生成可部署的软件
持续集成可以让您在任何时间发布可以部署的软件。从外界来看,这是持续集成最明
显的好处,我们可以对改进软件品质和减少风险说起来滔滔不绝,但对于客户来 说,可以
部署的软件产品是最实际的资产。利用持续集成,您可以经常对源代码进行一些小改动,
并将这些改动和其他的代码进行集成。如果出现问题,项目成员马上就会被通知到,问题
会第一时间被修复。不采用持续集成的情况下,这些问题有可能到交付前的集成测试的时
候才发现,有可能会导致延迟发布产品,而在急于修复这些缺陷的时候又有可能引入新的
缺陷,最终可能导致项目失败。
﹡增强项目的可见性
持续集成让我们能够注意到趋势并进行有效的决策。如果没有真实或最新的数据提供
支持,项目就会遇到麻烦,每个人都会提出他最好的猜测。通常,项目成员通过手工收集
这些信息,增加了负担,也很耗时。
持续集成可以带来两点积极效果:
―有效决策:持续集成系统为项目构建状态和品质指标提供了及时的信息,有些持续集
成系统可以报告功能完成度和缺陷率。
―注意到趋势:由于经常集成,我们可以看到一些趋势,如构建成功或失败、总体品质
以及其它的项目信息。
﹡建立团队对开发产品的信心
持续集成可以建立开发团队对开发产品的信心,因为他们清楚的知道每一次构建的结
果,他们知道他们对软件的改动造成了哪些影响,结果怎么样。
6.目的
持续集成实践的目的不是减少 Build 失败的次数,而是尽早发现问题,在最短的时间
内解决问题,减少风险和浪费。如果想尝试持续集成,首先需要的是持续集成服务器,比
如 Cruise Control 或者 VSTS;然后需要把现有的 Build 自动化,比如写 Ant 脚本;最后就是
在持续集成服务器上进行配置,比如配置版本控制,集成间隔时间,如何部署,如何反馈
等。
(二)持续集成流行工具初步分析与建议
持续集成的工具现如今也是百花齐放,各有千秋,接下来我们主要介绍一下目前主流
的持续集成工具。
我们将从以下几个方面来进行介绍;
1.厂商
2.支持的编程语言
3.价格
4.SCM 支持程度
5.构建管理
6.消息通知机制
7.构建工具支持
8.项目管理工具集成
9.测试工具集成
10.安装及配置
11.IDE 集成
Ⅰ.CruiseControl.(http://cruisecontrol.sourceforge.net/)
厂商
ThoughtWorks
开发语言 JAVA,也有.net 和 ruby 版本
是否开源 是
价格 免费
SCM 支持程度 ClearCase , VSS, CVS, Subversion, PVCS 等
构建管理 并行构建,分布式构建,增量构建,人工强制
构建, SCM 触发构建等都有支持
消息通知机制 Email , Run executable,FTP,IRC,Jabber,Lotus
Sametime,RSS,SCP , Windows System Tray
, Formatted Logging , Yahoo Messenger ,
X10
构建工具支持 Shell 脚本与命令行, Ant, OpenMake
Meister, Maven, Maven2, NAnt
项目管理工具集成 项目管理工具 CruiseControl 支持了 Rally 和
VersionOne
测试工具集成 Agitar , JUnit result rendering
安装与配置 有 windows 安装程序, Self contained
distribution (except SCM clients) , N 无需修改
构建脚本,支持多个项目,使用 XML 配置文
件
IDE 集成 Eclipse Plugin , IntelliJ Plugin
.Ⅱ LuntBuild ,它的商业版本是 QuickBuild.
(http://www.quickbuild.com.cn/index.php)
厂商
PMEase
支持的编程语言
Java
是否开源 是
价格 免费
主流 SCM 支持程度 Clear Case , VSS, CVS, Subversion
构建管理 并行构建 , 增量构建,人工强制构建, SCM
触发构建
消息通知机制 Email , Run executable , Jabber , Lotus
Sametime , RSS , Windows System Tray ,
Formatted Logging , MSN Messenger
构建工具支持 Shell 脚 本 与 命 令 行 , Ant, OpenMake
Meister, Maven, Maven2 , MSbuild , NAnt
, Rake (Ruby)
项目管理工具集成 无
测试工具集成 JUnit result rendering , ‹ Selenium result
rendering , PHPUnit result rendering ,
MSTest result rendering
安装与配置 有 windows 安 装 程 序 , Self contained
distribution (except SCM clients) , N 无需修改
构建脚本,支持多个项目
IDE 集成
Eclipse Plug-in
.HudsonⅢ ,目前使用最广的持续集成工具.(http://hudson-ci.org/)
厂商
Java.net
支持的编程语言
Java
是否开源 是
价格 免费
主流 SCM 支持程度 Clear Case , VSS, CVS, Subversion , PVCS
等, SCM 支持最为完善
构建管理 并行构建,分布式构建,增量构建,人工强
制构建, SCM 触发构建等都有支持
消息通知机制 Email , Run executable , FTP , IRC ,
Jabber , Lotus Sametime ,
RSS,SCP,Windows System Tray,Formatted
Logging
构建工具支持 Shell 脚 本 与 命 令 行 , Ant, Groovy,
OpenMake Meister, Maven, Maven2 , MSbuild
剩余21页未读,继续阅读
资源评论
酣睡小猫111
- 粉丝: 0
- 资源: 11
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功