文章转载:http://www.cnblogs.com/zz0412/tag/jenkins/default.html?page=1

第一章 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 插件支持:支持扩展插件,你可以开发适合自己团队使用的工具。

一、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界面来进行安装与管理。

二、 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的主要特点

* 容易安装,只需要执行Java -jar jenkins.war, 或者直接部署到一个servlet container中,例如tomcat。不需要安装,不需要数据库的支持。

* 容易配置,jenkins可以完全地通过友好的web GUI来配置,且配置页面支持配置项的错误检查和很好的在线帮助。不需要手动地编辑xml的配置文件,但是jenkins也支持手动修改xml配置文件。

* 项目源码修改的检测,jenkins能够从项目的Subversion/CVS生成最近修改的集合列表,且改方式非常有效,不会增加Subversion/CVS Repository的负载。

* 可读的永久的链接生成,jenkins对于大部分pages都生成清楚的可读的永久的链接,例如''latest build"/"latest successful build",因此可以容易地在其他的地方引用jenkins的生成的pages。

* RSS/EMail/IM集成,可以通过RSS,EMail或IM来实时地监视build的失败。

* Build完成后仍然可以tag,支持在build完成后tag或重tag。

* Junit/TestNG 测试报告,能够很好地显示各种测试的报告,且可以生成失败的趋向图。

* 分布式build,jenkins能够分发build/test的负载到多台机器,能够更好地利用硬件资源,提高build的时间。

* 文件标识,jenkins可以标识build产生的文件,例如jars。

* 插件支持,jenkins可以通过第三方的插件来扩展。

* 跨平台,支持几乎所有的平台,例如Windows,Ubuntu/Debian,Red Hat/Fedora/CentOS,Mac OS X,openSUSE,FreeBSD,OpenBSD,Solaris/OpenIndiana.Gentoo。

转载于:https://www.cnblogs.com/yangxia-test/p/4354213.html

Jenkins学习一:Jenkins是什么?相关推荐

  1. 【Jenkins学习 】Jenkins安装 Build User Vars Plugin插件来获取jenkins用户相关信息

    一.需求描述 最近在一台测试服务器上安装最新版本的Jenkins,然后学习Pipeline语法,一切都是正常的.最后编译完成,发送通知的时候,因为需要使用到${BUILD_NUMBER} 变量,如下所 ...

  2. python 持续集成工具_持续集成工具: Jenkins学习

    持续集成工具: Jenkins学习 -- 部分内容收集自网络,如有侵权,请联系作者删除 一. 概念 在过去的开发整体流程中,是所有人写好代码之后统一进行合并(svn,git),然后进行测试,确保准发布 ...

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

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

  4. 【Jenkins学习 】解决Jenkins节点断开不可用,报错:Disk space is too low. Only 0.803GB left on /tmp.

    一.问题描述 刚刚有同事反馈Jenkins编译服务器挂了,然后得去排查为什么挂了. 进入到该编译节点 Agent Android_Phone_Server (Android APP 机房编译服务器) ...

  5. jenkins学习系列之PMD静态代码检测

    一.jenkins集成PMD流程 实际生产中,上线的代码往往要经过检测,满足一些规则才行,这些规则可以是直接使用官方的规则,也可以是自己写的. 因为目前的工作和java有关,所以这里以java代码静态 ...

  6. 持续集成工具Jenkins学习4 Idea集成Jenkins插件

    持续集成工具Jenkins学习4 Idea集成Jenkins插件 一.功能简介 二.安装Idea插件 1. 搜索安装 2. 设置 三.Jenkins开启CSRF 四.使用 一.功能简介 Idea可以方 ...

  7. CI/CD学习笔记-Jenkins综合项目Github+Jenkins+Harbor+Docker

    实验说明 实验拓扑 部署流程 研发push到github代码库 Jenkins 构建,pull git代码 使用maven进行编译打包 打包生成的代码,生成一个新版本的镜像,push到本地docker ...

  8. Gitlab+Jenkins学习之路(六)之Jenkins部署、升级和备份

    一.什么是持续集成? (1)Continuous integration(CI) 持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员至少集成一次,也就意味着每天可能会发生多次集 ...

  9. jenkins学习笔记2-在centos中安装jenkins master测试环境

    在centos中安装jenkins 1)安装目录 pwd (/home/AAA) 2)检查java是否安装 [AAA@Centos_AAA jenkins]$ java -version java v ...

  10. Jenkins学习总结(3)——Jenkins+Maven+Git搭建持续集成和自动化部署的

    前言 持续集成这个概念已经成为软件开发的主流,可以更频繁的进行测试,尽早发现问题并提示.自动化部署就更不用说了,可以加快部署速度,并可以有效减少人为操作的失误.之前一直没有把这个做起来,最近的新项目正 ...

最新文章

  1. 计算机四级网络工程师考试重点
  2. Android libcore添加JNI调用Hal层接口问题
  3. 5G时代,如何让人工智能服务人类而不是开除人类
  4. Java反射学习总结五(Annotation(注解)-基础篇)
  5. PS网页设计教程——小贴士:在PS中创建复古的页面
  6. Nginx作为静态资源服务器
  7. 503热敏电阻温度阻值对应表
  8. 特斯拉又发生车祸!电池夜间还自燃3次
  9. php随笔_PHP随笔笔记
  10. 烟火高桥蝶变“中非商港”,开放雨花引领国际商贸
  11. 【GISer小O】JAVA后台的小白之路(一)_2 ——分分合合三剑客
  12. outlook邮箱附件无法打开,提示无法创建文件
  13. 电脑文件数据恢复有哪些方法?电脑怎么恢复已删除的文件数据?
  14. win7的终端服务器,win7系统远程提示终端服务器超出了最大允许连接的解决方法...
  15. 计算几何基础(持续更新)
  16. 小牛电动增收不增利:年度净利润下滑11%,外部竞争愈发激烈
  17. 鸿蒙liteos,鸿蒙LiteOS-M内核与HUAWEI LiteOS内核对比
  18. JSP页面打开时先加载Servlet
  19. 如何使用MYSQL触发器,备份历史记录?
  20. 国内有一定规模的公司官网隐藏的彩蛋

热门文章

  1. ansys linux运行_如何在linux系统下启动workbench。谢谢啦。 - 仿真模拟 - 小木虫 - 学术 科研 互动社区...
  2. python对文件操作的统一步骤_基于Python实现对各种数据文件的操作
  3. bin文件查看器app_鸿蒙系统编译第一个APP:hello
  4. 《团队作业第三、第四周》五小福团队作业--Scrum 冲刺阶段--Day7
  5. Web前端开发神器-WebStorm
  6. eclipse环境NDK问题汇总
  7. ubuntu apt-get 遇到的问题
  8. 深入了解 Dojo 的服务器推送技术
  9. 【论文】Realtime lane tracking of curved local road 检测和跟踪功能
  10. 垃圾回收中的finalize方法