• 持续集成简介


    1.   什么是持续集成?

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

     

    2.   持续集成服务器

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

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

      

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

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

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

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

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

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

    4.   持续集成工作模式的优点

    传统开发模式

     

    持续集成开发模式

     

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

    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,相当灵活。
  • 相关阅读:
    小D课堂
    小D课堂
    小D课堂
    小D课堂
    小D课堂
    小D课堂
    小D课堂
    阶段3 3.SpringMVC·_07.SSM整合案例_09.ssm整合之Spring整合MyBatis框架配置事务
    阶段3 3.SpringMVC·_07.SSM整合案例_08.ssm整合之Spring整合MyBatis框架
    阶段3 3.SpringMVC·_07.SSM整合案例_07.ssm整合之编写MyBatis框架测试保存的方法
  • 原文地址:https://www.cnblogs.com/jiangyaxiong1990/p/10868488.html
Copyright © 2020-2023  润新知