文章转载: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。
Jenkins学习一:Jenkins是什么?的更多相关文章
-
jenkins学习:jenkins的基本配置
_(:з)∠)_,发现写了gitlab和maven ,但是jenkins的详细步骤没有. 这里整理一下. 1.下载jenkins的war包,无需FQ. 网址:https://jenkins.io/do ...
-
jenkins学习 03 jenkins配置Maven项目
我们的产品使用Git作为版本管理工具,而jenkins需要git插件来支持git,所以我们需要为jenkins添加git插件. 在Available tab页中找到Git Plugin 点击下方的In ...
-
jenkins学习 02 jenkins安装与配置
1: Jenkins安装 在最简单的情况下,Jenkins 只需要两个步骤: (1)下载最新的版本(一个 WAR 文件).Jenkins官方网址: http://Jenkins-ci.org/ (2 ...
-
jenkins学习 01 jenkins介绍
jenkins 是一个可扩展的持续集成引擎. 使用Jenkins目的: 持续.自动地构建/测试软件项目. 监控一些定时执行的任务. jenkins拥有的特性: 易于安装,只要jenkins.war部署 ...
-
Jenkins学习二:Jenkins安装与配置
安装前关注: Q:应该选择哪个版本的Jenkins? A:如果你是公司正式使用推荐长期支持版(LTS),原因:稳定.如果你是学习,随便哪个版本都可以. Q:JDK应该安装哪个版本的? A:推荐安装JD ...
-
Jenkins 学习笔记
Jenkins 的内容网站蛮多的,但是一开始我看起来确实很费劲.似乎好多东西都是悬空的,没有把底层的信息交代清楚. 我把自己对于 Jenkins 的探索过程记录下来,如下. 目录 Jenkins 学习 ...
-
Jenkins学习
1.jenkins启动卡在密码初始化处不动的情况,参照: https://blog.csdn.net/lylload/article/details/82754101 https://blog.csd ...
-
Jenkins持续集成学习-搭建jenkins问题汇总
目录 Jenkins持续集成学习5-搭建jenkins问题汇总 目录 前言 问题列表 nuget还原包问题 编译问题 SVN更新问题 参考文档 Jenkins持续集成学习5-搭建jenkins问题汇总 ...
-
Gitlab+Jenkins学习目录
Gitlab+Jenkins基础篇 Gitlab+Jenkins学习之路(一)之Git基础 Gitlab+Jenkins学习之路(二)之gitlab部署 Gitlab+Jenkins学习之路(三)之g ...
-
Jenkins学习之旅
学习博客:http://www.cnblogs.com/zz0412/tag/jenkins/ https://jenkins.io/doc/ http://www.cnblogs.com/h ...
随机推荐
-
多线程下C#如何保证线程安全?
多线程编程相对于单线程会出现一个特有的问题,就是线程安全的问题.所谓的线程安全,就是如果你的代码所在的进程中有多个线程在同时运行,而这些线程可能会同时运行这段代码.如果每次运行结果和单线程运行的结果是 ...
-
[poj1860] Currency Exchange (bellman-ford算法)
题目链接:http://poj.org/problem?id=1860 题目大意:给你一些兑换方式,问你能否通过换钱来赚钱? 使用ford算法,当出现赚钱的时候就返回YES,如果不能赚钱,则返回NO ...
-
千万不要误用 java 中的 HashCode 方法
刚才debug追堆栈的时候发现一个很奇怪的问题 我用IE8和Google的浏览器访问同一个地址 Action的 scope="session" 也设置了 而且两个浏览器提交的参数m ...
-
抱怨IT公司人才缺乏?留住现有人才方是正途
摘要:员工的好坏决定着IT公司的未来,可很多IT公司在抱怨之时自己的人才却正在流失,如何留住现有的优秀员工?国外知名经理人Sharon Florentine建议:改善自己的管理.让员工不断地学习.创建 ...
-
iscroll5 版本下的 上拉,下拉 加载数据
上拉时候只是加载第一页的内容,可根据实际情况修改其中的代码. <section id="downwraper" class="nodeBottom bot0 bgf ...
-
R语言实战(五)方差分析与功效分析
本文对应<R语言实战>第9章:方差分析:第10章:功效分析 ================================================================ ...
-
【2017-06-05】Jquery.ajax
AJAX 是一种网页数据异步加载技术 通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新.这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新. 一.Json ...
-
Java自增和自减操作符——++/--的那些事
1. 概述 自增操作符(++)和自减操作符(--)是对变量进行加1和减1的操作. 2.分类说明 ++和--是对变量进行自增1和自减1的简写操作符.许多编程任务中经常需要对变量加1或者减1,所以采用这两 ...
-
CentOS 7.x 安装 Docker-Compose
一.安装步骤 添加企业版附加包. yum -y install epel-release 安装 PIP. yum -y install python-pip 更新 PIP. pip install - ...
-
百度未授权使用地图API
百度地图管理员的回复:这是KEY服务升级的问题, 给您造成的不便,非常抱歉.但我们昨日已修复,你可以再审核一番.若不可以,请提供一下您的系统ak,邮箱或qq发送至(wangwenhai@baidu.c ...