持续集成Jenkins


     随着软件开发复杂度的不断提高,团队开发成员间如何更好地协同工作以确保软件开发的质量已逐步成为开发过程中不可回避的问题。尤其是近些年来,敏捷(Agile) 在软件工程领域被大量讨论,如何能在不断变化的需求中快速适应和保证软件的质量显得尤为重要。

持续集成正是针对这一类问题的一种软件开发实践,它倡导团队开发成员必须经常集成他们的工作,甚至每天都可能进行多次集成,而每次的集成都是通过自动化的构建来验证,包括自动编译、发布和测试,从而尽快地发现集成错误,让团队能够更快的开发内聚的软件。

持续集成的核心价值在于:

持续集成中的任何一个环节都是自动完成的,无需太多的人工干预,有利于减少重复过程以节省时间、费用和工作量;

持续集成保障了每个时间点上团队成员提交的代码是能成功集成的,即任何时间点都能第一时间发现软件的集成问题,使任意时间发布可部署的软件成为可能;

持续集成还能利于软件本身的发展趋势,在需求不明确或频繁变更需求的情景中尤其重要,持续集成的质量能帮助团队进行有效地决策,同时建立团队对开发产品的信心。

业界普遍认同的持续集成的原则包括:

1)需要版本控制软件保障团队成员提交的代码不会导致集成失败,常用的版本控制软件有 svn、git 等;

2)开发人员必须及时向版本控制库中提交代码,也必须经常性地从版本控制库中更新代码到本地;

3)需要有专门的集成服务器来执行集成构建,根据项目的具体情况,集成构建可以在软件被修改时直接触发,也可以定时启动触发,如每半个小时构建一次;

4)必须保证构建的成功,如果构建失败,修复构建过程中的错误是优先级最高的工作,一旦修复,需要手动启动一次构建。

由此可见,一个完整的构建系统必须包括:

一个自动构建过程,包括自动编译、分发、部署和测试等。

一个代码存储库,即需要版本控制软件来保障代码的可维护性,同时作为构建过程的素材库。

一个持续集成服务器,Jenkins 就是一个配置简单且使用方便的持续集成服务器。

Jenkins 简介

Jenkins 是一个开源项目,提供了一种易于使用的持续集成系统,使开发者从繁杂的集成中解脱出来,专注于更为重要的业务逻辑实现上,同时 Jenkins 能实施监控集成中存在的错误,提供详细的日志文件和提醒功能,还能以图表的形式形象地展示项目构建的趋势和稳定性。

blob.png


Jenkins,原名Hudson,2011年改为Jenkins,它是一个开源的实现持续集成的软件工具。

Jenkins特点

易安装:仅仅一个 java -jar jenkins.war,从官网下载该文件后,直接运行,无需额外的安装,更无需安装数据库;

易配置:提供友好的GUI配置界面;

变更支持:Jenkins能从代码仓库(svn/git)中获取并产生代码更新列表并输出到编译输出信息中;

支持永久链接:用户是通过web来访问Jenkins的,而这些web页面的链接地址都是永久链接地址,因此,你可以在各种文档中直接使用该链接;

集成E-Mail/RSS/IM:当完成一次集成时,可通过这些工具实时告诉你集成结果(据我所知,构建一次集成需要花费一定时间,有了这个功能,你就可以在等待结果过程中,干别的事情);

JUnit/TestNG测试报告:也就是用以图表等形式提供详细的测试报表功能;

支持分布式构建:Jenkins可以把集成构建等工作分发到多台计算机中完成;

文件指纹信息:Jenkins会保存哪次集成构建产生了哪些jars文件,哪一次集成构建使用了哪个版本的jars文件等构建记录;

支持第三方插件:使得 Jenkins 变得越来越强大;

其它集成工具

其它比较著名的持续集成工具有:CruiseControl,TeamCity,Continuum等。

上一篇:参加动力节点Java培训走向高薪之路
下一篇:互联网中接口安全解决方案

开班信息

  1. 参加活动
  2. 免费教程
  3. 面授学习
  4. 直播学习
  5. 夜校学习