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

使用Jenkins目的:

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

jenkins拥有的特性:

  • 易于安装,只要jenkins.war部署到servlet容器(比如直接放到Tomcat的webapps下面),就可以运行。
  • 易于配置,配置都是在其提供的web界面实现。
  • 集成RSS/E-mail通过RSS发布构建结果或用e-mail通知。
  • 生成JUnit/TestNG测试报告。
  • 分布式构建支持。jenkins能够让多态计算机一起构建、测试。
  • 文件识别:jenkins能够跟踪哪次构建生成哪些jar包,哪次构建使用哪个版本的jar包
  • 插件支持:支持扩展插件。

jenkins的由来:

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

  • 软件构建自动化:配置完成后,CI系统依照预先指定的时间表,或者针对某一特定事件,对目标软件进行构建。
  • 构建可持续的自动化检查:CI系统能持续的获取新增或修改后签入的源代码,也就是说,当软件开发团队需要周期性的检查新增或修改后的代码时,CI系统会不断确认这些代码是否破坏了原有软件的成功构建。
  • 构建可持续的自动化测试:构建检查的扩展部分,构建后执行预先定义的一套测试规则,完成后触发通知(E-mail, RSS )给相关的当事人。
  • 生成后续过程的自动化:当自动化检查和测试成功完成,软件构建的周期中可能也需要一些额外的任务,诸如生成文档、打包软件、部署构建到一个运行环境或软件仓库。

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

下图是CI系统的基本结构:

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

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

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

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

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

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

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

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

使用Jenkins的理由:

  • 是所有CI产品中,安装和配置上最简单的。
  • 基于web访问,用户界面友好
  • Jenkins是基于JAVA开发的,但它不仅限于构建基于JAVA的软件。
  • Jenkins拥有大量的插件。

CI系统在整个开发过程中的主要作用是:当系统在代码存储库中探测到修改时,它将运行构建的任务委托给构建过程本事。如果构建失败,CI系统会通知相关人员,然后继续监视存储库。

特别是它具有以下优点:

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

jenkins学习 01 jenkins介绍的更多相关文章

  1. Jenkins学习三:介绍一些Jenkins的常用功能

    Jenkins其实就是一个工具,这个工具的作用就是调用各种其他的工具来达成你的目的. 1.备份.迁移.恢复jenkins 首先找到JENKINS_HOME,因为Jenkins的所有的数据都是以文件的形 ...

  2. jenkins学习 02 jenkins安装与配置

    1:  Jenkins安装 在最简单的情况下,Jenkins 只需要两个步骤: (1)下载最新的版本(一个 WAR 文件).Jenkins官方网址: http://Jenkins-ci.org/ (2 ...

  3. jenkins学习:jenkins的基本配置

    _(:з)∠)_,发现写了gitlab和maven ,但是jenkins的详细步骤没有. 这里整理一下. 1.下载jenkins的war包,无需FQ. 网址:https://jenkins.io/do ...

  4. jenkins学习 03 jenkins配置Maven项目

    我们的产品使用Git作为版本管理工具,而jenkins需要git插件来支持git,所以我们需要为jenkins添加git插件. 在Available tab页中找到Git Plugin 点击下方的In ...

  5. Swift开发学习-01 Swift介绍

    本教程是笔者在自学IOS/Swift知识的总结,适用于通过对Objictive C编程的运用并需要了解基于iOS程序的iPhone和iPad的程序员.做一个有bigger的’攻城狮‘,有尊严的工作,快 ...

  6. kubernetes学习01—kubernetes介绍

    本文收录在容器技术学习系列文章总目录 一.简介 1.Kubernetes代码托管在GitHub上:https://github.com/kubernetes/kubernetes/. 2.Kubern ...

  7. Jenkins持续集成学习-搭建jenkins问题汇总

    目录 Jenkins持续集成学习5-搭建jenkins问题汇总 目录 前言 问题列表 nuget还原包问题 编译问题 SVN更新问题 参考文档 Jenkins持续集成学习5-搭建jenkins问题汇总 ...

  8. Jenkins学习二:Jenkins安装与配置

    安装前关注: Q:应该选择哪个版本的Jenkins? A:如果你是公司正式使用推荐长期支持版(LTS),原因:稳定.如果你是学习,随便哪个版本都可以. Q:JDK应该安装哪个版本的? A:推荐安装JD ...

  9. Jenkins学习

    1.jenkins启动卡在密码初始化处不动的情况,参照: https://blog.csdn.net/lylload/article/details/82754101 https://blog.csd ...

随机推荐

  1. 3.django连接mysql数据库及安装mysqldb驱动报错解决办法

    1.在setting.py设置连接数据库 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'djang ...

  2. 如何开启和禁止Linux系统的ping功能

    在日常的网络维护和使用过程中,ping命令是最为常用的一个检测命令,它所使用的是ICMP协议,但是为了保护主机,很多时候我们需要禁止ICMP协议,在这种情况下,终端再使用ping命令检测,服务器是不会 ...

  3. netty上手

    关于netty的基础NIO,请参见:NIO原理及实例 下面介绍Netty的上手使用: 首先为项目添加jar依赖: <dependency> <groupId>io.netty& ...

  4. ML 逻辑回归 Logistic Regression

    逻辑回归 Logistic Regression 1 分类 Classification 首先我们来看看使用线性回归来解决分类会出现的问题.下图中,我们加入了一个训练集,产生的新的假设函数使得我们进行 ...

  5. numpy array或matrix的交换两行

    A[j,:] = A[maxindex,:] # 注意这样是一个很低级的错误!这样只是赋值 我们很容易想起python中的两个值交换一句搞定不用引入中间变量 a, b = b, a 但在numpy的a ...

  6. 5.2 Selenium2环境搭建

    1.Java开发环境的搭建      本课程中将使用Java语言编写Selenium自动化测试脚本,在Eclipse集成开发环境中运行. (1)jdk的安装 a.下载 官网下载,http://www. ...

  7. python中利用正则表达式匹配ip地址

    现在有一道题目,要求利用python中re模块来匹配ip地址,我们应如何着手? 首先能想到的是ip地址是数字,正则表达式是如何匹配数字的呢? \d或[0-9] 对于这个问题,不要一下子上来就写匹配模式 ...

  8. 使用Spring MVC表单标(转)

    概述     在低版本的Spring中,你必须通过JSTL或<spring:bind>将表单对象绑定到HTML表单页面中,对于习惯了Struts表单标签的开发者来说,Spring MVC的 ...

  9. 项目管理理论与实践(6)——利用Excel制作项目文档的设计技巧

    这篇是使用的Excel 2007 进行文档设计,Excel的设计也是一门学问,这里主要介绍一些Excel的设计技巧,后面也会陆续更新该文章. 1. 固定某行某列 首先设计这样的任务管理文档: 现在我想 ...

  10. GEF入门实例_总结_03_显示菜单和工具栏

    一.前言 本文承接上一节: GEF入门实例_总结_02_新建初始RCP空项目 这一节,我们来给我们的插件加上菜单. 二.基础知识 1.action bar.menubar.coolbar   含义 a ...