Jenkins+Maven+Sonar

一、持续集成基础理论知识

1. 持续集成CI

1. 集成

在说持续集成前,我们先了解下什么是“集成”。在实际的软件开发中,常常会有如下两种场景:

  1. 现在有一个电商平台需要开发,由于电商平台某块众多,此时就需要不同的开发人员开发不同的某块,晨后将所有人开发好的代码集成到个系统中。集成完毕后需要对其进行部署上线。
  2. 随着时问的推移,该系统无论是bug修复、还是新功能开发,后续都需要对系统进行不断的更新迭代。
    Jenkins+Maven+Sonar
2. 持续集成

持续集成指的是,频繁地(一天多次)将代码集成到主干。(PS:虽复如上集成工作。)

Jenkins+Maven+Sonar

3. 持续集成带来的好处
  • 快速发现误。每完成一点更新,就集成到主干,可以快速发现错误,定位错误也比较容易。
  • 节省人力成本。
  • 加快软件开发进度。
  • 实时交付。
  • 防分支大幅偏离主干。如果不经常集成,主干又在不断更新,会导致以后集成难度变大,或难以集成。
4. 持续集成的目的

边产品可以快速送代,同的还能保持高质量。
它的核心措施是,代码集成到干之前,先进行自动化测试。只要有一个测试用例失败,就不能集成,当然持续集成并不能完全的消除Bug,而是让它们非常容易发现和改正。

5. 什么情况下需要使用持续集成

如果项目开发的规模比较小,软件集成不是问题。
但是如果项目很大,需要不新添加新功能,或不断的升级产品、则需要进行反复集成,这个时候就需要用到持续集成来简化我们的工作。

2. 持续交付

持续交付指的是在持续集成的环境础之上,将代码部到预生产环境。
持续交付:代码开发->单元测试->合并代码->测试->手动->部署到生产环境。
Jenkins+Maven+Sonar

3. 持续部署

持续部署是持续交付的下步,指代码在任何的刻都是可部部署的,最后将部署到产环境的过程自动化。
持续部署和持续交付的区别就是最终部署到生产环境是自 动化的。
持续部署:代码开发->单元测试->合并代码->测试->自动->部署到生产。
Jenkins+Maven+Sonar

4. 持续集成实施流程

根据持续集成的设计,代码从提交到生产,整个过程有以下几步:
Jenkins+Maven+Sonar

二、分布式版本控制系统实践

1. 版本控制系统概述

1. 版本控制系统 version control system

将每次文件的变化,集中在一个系统中加以版本记录,以便后续查阅特定文件版本的历史记录的系统。
企业真实案例:产品要求开发a功能,之后项目又需要修改为b功能,开发完之后又要改c功能,最后又说还是用a功能。没有版本控系统之前,操作起来非常的麻烦。
Jenkins+Maven+Sonar