一、简介
  jenkins是一个可扩展的持续集成引擎。持续集成,也就是通常所说的CI(Continues Integration),可以说是现代软件技术开发的基础。持续集成是一种软件开发实践,

即团队开发成员经常集成他们的工作,通常每个成员至少集成一次,也

就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽快地发现集成错误。许多团队发现这个过程可以大大减少

集成的问题,让团队能够更快的开发内聚的软件。

二、主要用于
1、持续、自动地构建、测试软件项目。

2、监控一些定时执行的任务。

三、jenkins拥有的特性
1、易于安装:只要把jenkins.war包部署到servlet容器即可,不需要数据库的支持。

2、易于配置:所有的配置都是通过其提供的web界面实现得。

3、集成RSS/E-mail通过RSS发布构建结果或当构建完成时通过E-mail通知相关人员以及负责人。

3、生成Junit/testNG/HTMLTestRunner测试报告

4、分布式构建支持jenkins能够让多台计算机一起构建、测试。

5、文件识别:jenkins能够跟踪那次构建生成那些jar,那次构建使用哪个版本的jar等。

6、插件支持:支持扩展插件,你可以开发适合自己团队使用的工具。

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

1、软件构建自动化 :配置完成后,CI系统会依照预先制定的时间表,或者针对某一特定事件,对目标软件进行构建。

2、构建可持续的自动化检查 :CI系统能持续地获取新增或修改后签入的源代码,也就是说,当软件开发团队需要周期性的检查新增或修改后的代码时,CI系统会不断确认这些新代码是否破坏了原有软件的成功构建。这减少了开发者们在检

查彼此相互依存的代码中变化情况需要花费的时间和精力(说直接一点也是钱啊,呵呵)。

3、构建可持续的自动化测试 :构建检查的扩展部分,构建后执行预先制定的一套测试规则,完成后触发通知(Email,RSS等等)给相关的当事人。

4、生成后后续过程的自动化 :当自动化检查和测试成功完成,软件构建的周期中可能也需要一些额外的任务,诸如生成文档、打包软件、部署构件到一个运行环境或者软件仓库。这样,构件才能更迅速地提供给用户使用。

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

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

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

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

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

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

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

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

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

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

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

1、是所有CI产品中在安装和配置上最简单的。

2、基于Web访问,用户界面非常友好、直观和灵活,在许多情况下,还提供了AJAX的即时反馈。

3、Jenkins是基于Java开发的(如果你是一个Java开发人员,这是非常有用的),但它不仅限于构建基于Java的软件。

4、Jenkins拥有大量的插件。这些插件极大的扩展了Jenkins的功能;它们都是开源的,而且它们可以直接通过web界面来进行安装与管理。

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

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

特别是它具有以下优点:

1、Jenkins一切配置都可以在web界面上完成。有些配置如MAVEN_HOME和Email,只需要配置一次,所有的项目就都能用。当然也可以通过修改XML进行配置。

2、支持Maven的模块(Module),Jenkins对Maven做了优化,因此它能自动识别Module,每个Module可以配置成一个job。相当灵活。

3、测试报告聚合,所有模块的测试报告都被聚合在一起,结果一目了然,使用其他CI,这几乎是件不可能完成的任务。

4、构件指纹(artifact fingerprint),每次build的结果构件都被很好的自动管理,无需任何配置就可以方便的浏览下载。

jenkins手把手教你从入门到放弃01-jenkins简介相关推荐

  1. jenkins手把手教你从入门到放弃03-安装Jenkins时web界面出现该jenkins实例似乎已离线

    简介 很久没有安装jenkins了,因为之前用的的服务器一直正常使用,令人郁闷的是,之前用jenkins一直没出过这个问题. 令人更郁闷的是,我尝试了好多个历史版本和最新版本,甚至从之前的服务器把je ...

  2. jenkins手把手教你从入门到放弃02-jenkins在Windows系统安装与配置

    Jenkins安装 一.安装Java环境 1.你需要做的第一件事情就是在你的机器上安装Java环境.Jenkins是一个基于Java的Web应用程序,所以你至少需要安装JRE.如果没有安装自行百度安装 ...

  3. 手把手教你快速入门知识图谱 - Neo4J教程

    手把手教你快速入门知识图谱 - Neo4J教程 前言 1. Neo4J简介 2. Neo4J安装 3. Neo4J使用 4. Cypher查询语言 5. Neo4J实战教程 1. 首先,我们删除数据库 ...

  4. 手把手教你快速入门 APP 的开发

    论及每年的编程语言排行榜, Java 总是名列榜首,流行意味着好用,我们当了解之. 当今生活,最体现科技的地方便是电子产品.而电子产品中,我们接触最多.最离不开的便是手机.手机之所以成为"手 ...

  5. vnpy怎么创建策略并回测_【手把手教你】入门量化回测最强神器backtrader(一)

    1 引言 目前基于Python的量化回测框架有很多,开源框架有zipline.vnpy.pyalgotrader和backtrader等,而量化平台有Quantopian(国外).聚宽.万矿.优矿.米 ...

  6. kali mysql停止服务器_从零开始:手把手教你黑客入门攻破服务器并获取ROOT权限...

    有许多人对神秘的黑客一直感兴趣,却苦于网上资料繁杂,无法入门,在学黑客之前,你要知道什么是黑客,黑客就是那些对计算机有着强烈探索欲的人,一个真正的黑客,必须要至少掌握一门编程技术和熟悉系统的操作命令. ...

  7. neo4j 查询同一节点的两个上级_手把手教你快速入门知识图谱 - Neo4J教程

    前言 今天,我们来聊一聊知识图谱中的Neo4J.首先,什么是知识图谱?先摘一段百度百科: 知识图谱(Knowledge Graph),在图书情报界称为知识域可视化或知识领域映射地图,是显示知识发展进程 ...

  8. 手把手教你 MySQL 入门,太全啦!!

    SQL 基础使用 MySQL 是一种关系型数据库,说到关系,那么就离不开表与表之间的关系,而最能体现这种关系的其实就是我们接下来需要介绍的主角 SQL,SQL 的全称是 Structure Query ...

  9. 手把手教你安卓入门(上)

    前言 很多同学想学安卓应用开发,但是还没有开始就遇到了很多问题,比如资源无法下载,环境搭建遇到问题,代码不知该从何处写起.从0到1的过程让新手们抓狂. 于是想写一篇比较简单.操作性强的快速指南,帮助准 ...

最新文章

  1. 阿里巴巴电商平台架构演变之路
  2. NTU 课程笔记 :NLP - language model
  3. Matlab字符串函数
  4. 判断点是否在凸多边形内
  5. python现在时间 命令,Python 日期格式和时间以及当前时间和时间戳
  6. LeetCode - Easy - 696. Count Binary Substrings
  7. 利润太薄甚至亏损?小米卢伟冰解释红米Note7线下缺货问题
  8. 字体设计灵感合集|字体决定了设计
  9. exe4j打包后 提示 couldn't load main class
  10. jsp为什么被淘汰了?
  11. en60204标准_《EN_60204_机械产品电气安全标准介绍》.pdf
  12. [从零开始学习FPGA编程-8]:快速入门篇 - 总体 - FPGA功能开发详细流程与关键步骤解读
  13. size不变的图片,用于目标检测
  14. PMP项目管理如何通过改革处理掉核心技术成果的潜在流失风险?
  15. gazebo publish pose
  16. 指纹支付 java lang6_支付宝;超6成人使用指纹、刷脸支付,网友;喜欢用密码!...
  17. 2022安好? 2023何如?
  18. 浅谈多重积分及其计算
  19. 系统安装时出现 \EFI\BOOT\mmx64.sfi -Not Found
  20. HTML源码小游戏——坦克大战、飞机大战、捕鱼达人

热门文章

  1. zoj 3629 Treasure Hunt IV
  2. 硬件时间,操作系统时间,Windows 和linux 双系统时间差8小时问题说明
  3. BI报表系统在银行业的应用
  4. 代码生成利器-NCodeGenerate 教程(2) NCodeGenerate的代码公用之一
  5. plsql连接本地oracle数据库,而远程主机却无法连接,出现无监听程序的解决方法(转)
  6. 邮件发送异常, [Errno 110] Connection timed out
  7. 前端跨域,nginx反向代理的解决方案
  8. 解决在工具栏Chrome图标上点击右键会显示“常去网站”和“最后关闭网站”的问题
  9. apache 配置 wss websocket打开握手超时_「Web应用架构」WebSocket介绍和WebSocket API
  10. java 死锁_java死锁分析