持续集成简介

1.   什么是持续集成?

       在软件工程中,持续集成(CI)是指将全部开发者的工做副本天天屡次合并到主干的作法。Grady Booch 在1991年的 Booch method 中首次命名并提出了 CI 的概念,尽管在当时他并不主张天天屡次集成。web

 

2.   持续集成服务器

     持续集成服务器就是可以采用自动化的手段,来解放人的双手,实现项目持续集成的工具。与之配套的软件有TeamCity、Jenkins、Go等。数据库

 

3.   持续集成系统的基本结构

  

 

1. 开发者检入代码到源代码仓库。服务器

2. CI系统会为每个项目建立了一个单独的工做区。当预设或请求一次新的构建时,它将把源代码仓库的源码存放到对应的工做区。分布式

3. CI系统会在对应的工做区内执行构建过程。工具

4. (配置若是存在)构建完成后,CI系统会在一个新的构件中执行定义的一套测试。完成后触发通知(Email,RSS等等)给相关的当事人。测试

5. (配置若是存在)若是构建成功,这个构件会被打包并转移到一个部署目标(如应用服务器)或存储为软件仓库中的一个新版本。软件仓库能够是CI系统的一部分,也能够是一个外部的仓库,诸如一个文件服务器或者像Java.net、 SourceForge之类的网站。优化

6. CI系统一般会根据请求发起相应的操做,诸如即时构建、生成报告,或者检索一些构建好的构件。网站

 

4.   持续集成工做模式的优势

传统开发模式.net

 

持续集成开发模式插件

 

       经过对比传统和持续集成开发模式后会发现,在持续集成模式中:

  1. 解放了重复性劳动:自动化部署工做能够解放集成、测试、部署等重复性劳动,而机器集成的频率明显比手工高不少。
  2. 更快地修复问题:持续集成更早的获取变动,更早的进入测试,更早的发现问题,解决问题的成本显著降低
  3. 更快的交付成果:更早发现错误减小解决错误所需的工做量。集成服务器在构建环节发现错误能够及时通知开发人员修复。集成服务器在部署环节发现错误能够回退到上一版本,服务器始终有一个可用的版本。
  4. 减小手工的错误:在重复性动做上,人容易犯错,而机器犯错的概率几乎为零。
  5. 减小了等待时间:缩短了从开发、集成、测试、部署各个环节的时间,从而也就缩短了中间能够出现的等待时机。持续集成,意味着开发、集成、测试、部署也得以持续。
  6. 更高的产品质量: 集成服务器每每提供代码质量检测等功能,对不规范或有错误的地方会进行标致,也能够设置邮件和短信等进行警告。

5. Jenkins简介

5.1 什么是Jenkins

       Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工做,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。主要用于:持续、自动地构建/测试软件项目、监控外部调用的执行工做。

5.2 Jenkins的主要特性

  1. 易于安装-只要把jenkins.war部署到servlet容器,不须要数据库支持。
  2. 易于配置-全部配置都是经过其提供的web界面实现。
  3. 集成RSS/E-mail经过RSS发布构建结果或当构建完成时经过e-mail通知。
  4. 生成JUnit/TestNG测试报告。
  5. 分布式构建支持Jenkins可以让多台计算机一块儿构建/测试。
  6. 文件识别:Jenkins可以跟踪哪次构建生成哪些jar,哪次构建使用哪一个版本的jar等。
  7. 插件支持:支持扩展插件,你能够开发适合本身团队使用的工具。

5.3 使用Jenkins的理由

  1. 是全部CI产品中在安装和配置上最简单的。
  2. 基于Web访问,用户界面很是友好、直观和灵活,在许多状况下,还提供了AJAX的即时反馈。
  3. Jenkins是基于Java开发的(若是你是一个Java开发人员,这是很是有用的),但它不只限于构建基于Java的软件。
  4. Jenkins拥有大量的插件。这些插件极大的扩展了Jenkins的功能;它们都是开源的,并且它们能够直接经过web界面来进行安装与管理。
  5. 支持Maven的模块(Module),Jenkins对Maven作了优化,所以它能自动识别Module,每一个Module能够配置成一个job,至关灵活。
相关文章
相关标签/搜索