Jenkins系列之——第一章 Jenkins下载及安装
Jenkins系列之——第二章 Jenkins中Maven和JDK配置
Jenkins系列之——第三章 Jenkins编译的第一个项目
Jenkins系列之——第四章 Jenkins编译一个Web项目并远程发布到Tomcat
Jenkins系列之——第五章 Jenkins编译一个Spring Boot项目并通过SSH推送到远程

前言 Jenkins是什么?

Jenkins 是一个可扩展的持续集成引擎。

主要用于:

  • l 持续、自动地构建/测试软件项目。
  • l 监控一些定时执行的任务。

Jenkins拥有的特性包括:

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

1 Jenkins的由来

目前持续集成(CI)已成为当前许多软件开发团队在整个软件开发生命周期内侧重于保证代码质量的常见做法。它是一种实践,旨在缓和和稳固软件的构建过程。并且能够帮助您的开发团队应对如下挑战:

  • l 软件构建自动化 :配置完成后,CI系统会依照预先制定的时间表,或者针对某一特定事件,对目标软件进行构建。
  • l 构建可持续的自动化检查 :CI系统能持续地获取新增或修改后签入的源代码,也就是说,当软件开发团队需要周期性的检查新增或修改后的代码时,CI系统会不断确认这些新代码是否破坏了原有软件的成功构建。这减少了开发者们在检查彼此相互依存的代码中变化情况需要花费的时间和精力(说直接一点也是钱啊,呵呵)。
  • l 构建可持续的自动化测试 :构建检查的扩展部分,构建后执行预先制定的一套测试规则,完成后触发通知(Email,RSS等等)给相关的当事人。
  • l 生成后后续过程的自动化 :当自动化检查和测试成功完成,软件构建的周期中可能也需要一些额外的任务,诸如生成文档、打包软件、部署构件到一个运行环境或者软件仓库。这样,构件才能更迅速地提供给用户使用。

部署一个CI系统需要的最低要求是,一个可获取的源代码的仓库,一个包含构建脚本的项目。

下图概括了CI系统的基本结构:

该系统的各个组成部分是按如下顺序来发挥作用的:

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

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

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

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

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

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

Jenkins就是这么一个CI系统。之前叫做Hudson。

以下是使用Jenkins的一些理由:

  • l 是所有CI产品中在安装和配置上最简单的。
  • l 基于Web访问,用户界面非常友好、直观和灵活,在许多情况下,还提供了AJAX的即时反馈。
  • l Jenkins是基于Java开发的(如果你是一个Java开发人员,这是非常有用的),但它不仅限于构建基于Java的软件。
  • l Jenkins拥有大量的插件。这些插件极大的扩展了Jenkins的功能;它们都是开源的,而且它们可以直接通过web界面来进行安装与管理。

1.1 Jenkins的目标

Jenkins的主要目标是监控软件开发流程,快速显示问题。所以能保证开发人员以及相关人员省时省力提高开发效率。

CI系统在整个开发过程中的主要作用是控制:当系统在代码存储库中探测到修改时,它将运行构建的任务委托给构建过程本身。如果构建失败了,那么CI系统将通知相关人员,然后继续监视存储库。它的角色看起来是被动的;但它确能快速反映问题。

特别是它具有以下优点:

  • l Jenkins一切配置都可以在web界面上完成。有些配置如MAVEN_HOME和Email,只需要配置一次,所有的项目就都能用。当然也可以通过修改XML进行配置。
  • l 支持Maven的模块(Module),Jenkins对Maven做了优化,因此它能自动识别Module,每个Module可以配置成一个job。相当灵活。
  • l 测试报告聚合,所有模块的测试报告都被聚合在一起,结果一目了然,使用其他CI,这几乎是件不可能完成的任务。
  • l 构件指纹(artifact fingerprint),每次build的结果构件都被很好的自动管理,无需任何配置就可以方便的浏览下载。

Jenkins系列之——前言 Jenkins初识相关推荐

  1. jenkins系列:获取jenkins 指定job最新结果并解析日志,整合成测试报告并发送邮件

    背景: 公司使用jenkins进行环境部署.自动化定时执行完成持续集成流水线,但并不希望每天点开jenkins job去查看执行结果,这样很麻烦,希望对每日集成部署环境得自动化测试结果进行汇总,邮件接 ...

  2. 【Jenkins系列1】Jenkins定时任务设置

    一.jenkins配置任务周期 新建或者重新配置jenkins任务可以看到任务的周期设置:里面有一个周期触发的选项,填写的是任务的周期配置. 官方说明翻译 MINUTE  HOUR  DOM  MON ...

  3. Jenkins系列之——第一章 Jenkins下载及安装

    前言:由于我是一个Java开发工作人员,所以教程中的东西都是以Java开发当中的项目为准,至于其他语言的部署暂时不涉猎,等以后有时间了再去研究. Jenkins下载及安装 一.下载 Jenkins分安 ...

  4. Jenkins系列:5、wsl下的Jenkins编译Windows下的Qt程序并自动打包成exe

    Jenkins系列:5.wsl下的Jenkins编译Windows下的Qt程序并自动打包成exe 文章目录 Jenkins系列:5.wsl下的Jenkins编译Windows下的Qt程序并自动打包成e ...

  5. ldap配置系列二:jenkins集成ldap

    ldap配置系列二:jenkins集成ldap jenkins简介 jenkins是一个独立的.开放源码的自动化服务器,它可以用于自动化与构建.测试.交付或部署软件相关的各种任务. jenkins官方 ...

  6. 【有容云案例系列】基于Jenkins和Kubernetes的CI工作流

    嘉宾介绍 黄文俊 有容云资深系统架构师 主要负责容器云平台产品架构及设计. 8年工作经验, 有着企业级存储, 云计算解决方案相关理解. 关注于微服务设计思考, 开发流程优化, docker及kuber ...

  7. Jenkins系列之二——centos 6.9 + JenKins 安装

    centos 6.9 + JenKins 安装记录 环境: [root@localhost ~]# cat /etc/issue CentOS release 6.9 (Final) Kernel \ ...

  8. Jenkins系列之——第三章 Jenkins编译的第一个项目

    上一章介绍了如何配置Maven和JDK,这一章我们将会配置我们第一个jenkins job当然这里jenkins只负责编译并不发布,发布将在下一章介绍 由于我们采用SVN源码管理和Maven编译所以需 ...

  9. [独孤九剑]持续集成实践(三)- Jenkins安装与配置(Jenkins+MSBuild+GitHub)

    本系列文章包含: [独孤九剑]持续集成实践(一)- 引子 [独孤九剑]持续集成实践(二)– MSBuild语法入门 [独孤九剑]持续集成实践(三)- Jenkins安装与配置(Jenkins+MSBu ...

最新文章

  1. Android移动开发之【通往安卓的神奇之旅】Senior VIew高级组件与onClickListener()再探索
  2. C#之任务,线程和同步
  3. Material-UI使用
  4. Java8之lambda表达式的总结
  5. 代码实现中文命名实体识别(包括多种模型:HMM,CRF,BiLSTM,BiLSTM+CRF)
  6. 在CentOS上安装Python3的三种方法
  7. 工业机器人工具中心点标定的意义_如何理解工业机器人的工具中心点
  8. oracle 9i standby,Oracle 9I dataguard(standby)
  9. 一文掌握秩和比综合评价法
  10. 华三交换机配置vrrp_VRRP原理与配置 华为、华三交换机,路由器
  11. Could not find a declaration file for module
  12. 高中的班花貌美如花,我与一众兄弟将其“共享”了!
  13. 又一篇Android Recovery的文章
  14. leetcode 1567
  15. 【深度学习 功法篇】win10操作系统PC端环境的部署(如何并存 不同的、多种版本的深度学习框架)
  16. ORACLE简繁转换函数
  17. 大规模集成电路计算机内存是,大规模集成电路测试技术
  18. 自动化测试面试总结干活-----转载
  19. 4+ 非常经典的hub基因鉴定路线
  20. 三年级下册计算机知识点,苏教版三年级信息技术下册知识点.doc

热门文章

  1. python怎么输出百分数_Python 如何输出百分比
  2. RK3399平台开发系列讲解(内核驱动外设篇)6.17、VOP驱动解析
  3. 【渝粤题库】陕西师范大学202521中国古代文学(三) 作业(高起专)
  4. vinted是什么平台以及特点
  5. ssm毕设项目住院病人管理系统pebfh(java+VUE+Mybatis+Maven+Mysql+sprnig)
  6. 关于2021年度一级建造师资格考试安徽考区考务工作有关事宜的通知
  7. keil 对于 ERROR: FILE DOES NOT EXIST错误的解决办法
  8. Android7.08.0 电池图标分析
  9. hdu2822(会双搜后再写次)
  10. PTA乙级 1068 万绿丛中一点红——20分