使用Jenkins构建持续集成环境
简介
Jenkins是一个开源的持续集成工具,提供了数百种插件供用户选择,能够完成整套持续集成环境的构建。
它具有如下的特点:
- 持续集成和持续发布
作为可扩展的自动服务器,Jenkins可以作为简单的CI服务器使用,也可以作为持续发布源。
- 安装简单
Jenkins是基于Java的程序,因此其可以运行在多种平台上,如Windows,Mac OS X和其他类似于Unix的操作系统。
- 配置简单
Jenkins可以通过Web图形化界面进行配置,包括实时的错误检查和内置帮助。
- 支持插件
在升级中心中支持数百种插件,Jenkins继承了持续集成领域内的每个工具,并且这些工具还在持续的更新和发布。
- 可扩展
Jenkins提供了支持插件的可扩展架构,因此它的应用领域几乎是无限的。
- 支持分布式
Jenkins可以方便的在多台主机中分配任务,帮助驱动构建,测试和部署。
操作
启动
$ sudo /opt/bitnami/ctlscript.sh start
停止
$ sudo /opt/bitnami/ctlscript.sh stop
升级
由于某些插件老版本不支持,因此考虑升级Jenkins服务器。现有版本是1.607,考虑升级到1.656。
下载最新版的jenkins.war,并复制到
/opt/bitnami/apps/jenkins/jenkins_home
/opt/bitnami/apache-tomcat/webapps/jenkins.war
注意要提前备份,因为有可能插件不兼容。
重启Jenkins
安装
下载jenkins最新版本
Pipeline
Pipeline功能要求必须是jenkins 1.642.3或更高(Jenkins2.0更好)
标准的jenkins的freestyle任务允许用户构建一个顺序执行的构建步骤,但是并没有保存构件过程中出现的问题;通过一个脚本控制整个复杂的构建工作流和其他pipeline能提供优势。
同freestyle相比,pipleline允许用户定义应用的整个生命周期。Pipeline帮助jenkins支持持续发布(continous delivery,CD)。Pipeline是为了满足构件一个弹性的,可扩展的,基于脚本的持续发布需求而出现的。
相应的,pipeline有如下的特性:
- 可持续,在计划和未计划的jenkins服务器重启的情况下都可以正常运行
- 可暂停,可以在构建中暂停
- 多功能,支持现实使用中的持续发布需求,包括forkjoin,循环和并行执行等。
- 可扩展,支持用户扩展

插件安装
插件安装
系统管理->管理插件

在该界面中,可以升级/卸载已有插件并安装新的插件,并且插件兼容性也有很好的提示。
另外,由于墙的原因,很有可能插件安装错误,这时候可以通过在Jenkins网站上下载最新版本的插件,并通过插件管理->高级选项卡上传安装插件。
之后重启jenkins即可完成安装。
邮件插件
其自身携带的邮件管理插件太弱了,因此安装Jenkins Email Extension Plugin和Email Extension Template Plugin。
- 配置系统管理员地址
该地址一定要配置,否则无法收到消息。

- 配置Email Extension Plugin插件
注意这里使用了QQ邮箱,163邮箱对此有限制,识别为垃圾邮件。
如果使用QQ邮箱,主要注意QQ邮箱使用的是SSL验证。

Static Code Utilities
静态检查工具的基础依赖,必须安装
Static Analysis Collector Plug-in
静态检查结果分析,将结果展示到编译结果窗口
Checkstyle Plugin
代码规则检查
PMD Plugin
Findbugs Plugin
需要注意Findbug是基于字节码进行检测,因此其必须在maven 之后运行。
使用Jenkins构建持续集成环境的更多相关文章
- Docker 结合Jenkins 构建持续集成环境
Docker 结合Jenkins 构建持续集成环境 Jenkins : 一个开源的持续集成工具, 提供软件版本发布.自动测试等一系列流程及丰富的插件 Maven: 一个自动化构建工具, 通过一段描述 ...
- Docker结合Jenkins构建持续集成环境
1.环境说明: jenkins+svn:192.168.71.142 测试环境:192.168.71.145 生产环境:192.168.71.148 操作系统:centos7. Maven3. Tom ...
- 用MSBuild和Jenkins搭建持续集成环境(2)
http://www.infoq.com/cn/articles/MSBuild-2 作者 Mustafa Saeed Haji Ali ,译者 李剑 发布于 2012年10月23日 | 注意: ...
- 使用Docker搭建Jenkins+Docker持续集成环境(自动化构建发布部署)
本文介绍如何通过Jenkins的docker镜像从零开始构建一个基于docker镜像的持续集成环境,包含自动化构建.发布到仓库\并部署上线. 0. 前置条件 服务器安装docker,并启动docker ...
- RF+Jenkins构建持续集成
引入RF是为了能够快速的开展自动化验收测试,Jenkins而一种持续集成工具,用于监控持续重复的工作,持续的软件版本发布/测试项目,而通过RF+Jenkins可以有利的对RF构建的接口项目进行持续集成 ...
- Docker+Jenkins持续集成环境(1)使用Docker搭建Jenkins+Docker持续集成环境
本文介绍如何通过Jenkins的docker镜像从零开始构建一个基于docker镜像的持续集成环境,包含自动化构建.发布到仓库\并部署上线. 0. 前置条件 服务器安装docker,并启动docker ...
- 使用jenkins构建持续集成平台
jenkins + Maven + svn/git + tomcat 的持续集成平台 项目管理流程: 需求分析----原型设计----开发代码----提交测试-----内部测试-----确认上线( ...
- Jenkins + svn + maven 构建持续集成环境搭建
Jenkins简介 Jenkins是一个开源软件项目,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能. Jenkins是基于Java开发的一种持续集成工具,用于监控持续重复的工作,功能包括: ...
- 用MSBuild和Jenkins搭建持续集成环境(1)
http://www.infoq.com/cn/articles/MSBuild-1 你或其他人刚刚写完了一段代码,提交到项目的版本仓库里面.但等一下,如果新提交的代码把构建搞坏了怎么办?万一出现编 ...
随机推荐
- [geeksforgeeks] Lowest Common Ancestor in a Binary Search Tree.
http://www.geeksforgeeks.org/lowest-common-ancestor-in-a-binary-search-tree/ Lowest Common Ancestor ...
- HTTP常见返回代码(HTTP Status codes)的分类和含义
HTTP错误主要分成三类:用户设备问题.Web服务器问题和连接问题.当客户端向Web服务器发送一个HTTP请求时,服务器都会返回一个响应代码.而这些响应代码主要分成五类. HTTP状态码中定义了5大类 ...
- Razor语法学习
原文:http://www.cnblogs.com/youring2/archive/2011/07/24/2115254.html 1.Razor的文件类型 Razor支持两种文件类型,分别是.cs ...
- java基础知识回顾之javaIO类---BufferedReader和BufferedWriter
使用了装饰设计模式:此类的设计是为了提高流操作数据的效率.思想就是定义容器将数据进行临时存储,对于缓冲区对象,其实就是将这个容器进行了分装,并提供了更高效的操作方法. BufferReader: pa ...
- (1)opengl-nehe 4种框架
http://www.yakergong.net/nehe/ 这个网站还是opengl方面比较权威的,作者叫nehe 这东西估计是要先装个ndk,然后才能运行代码 先睡觉! 以下内容参考自http:/ ...
- spring 主题使用详解[转]
在common_include_v2.jsp文件中,spring主题的使用: <link href="${staticPath }/<spring:theme code='sty ...
- ida GDB 远程调试
在看雪上回答的问题,有人问在WinDbg下断KiDebugRoutine或者KdEnterDebugger函数会引发蓝屏!因为是在调试Windows的内核调试引擎,我给出的解决办法是用不依赖Windo ...
- 李洪强iOS经典面试题12
1.说说响应链 答: 事件响应链.包括点击事件,画面刷新事件等.在视图栈内从上至下,或者从下之上传播. 可以说点事件的分发,传递以及处理.具体可以去看下touch事件这块.因为问的太抽象化了 严重怀 ...
- initWithFrame方法的理解
initWithFrame方法的理解 有时候,知道initWithFrame方法如何用,但是么有弄明白initWithFrame方法到底是什么? 那就通过查资料弄明白. 1. initWi ...
- angularJS之$apply()方法
这几天,根据buddy指定的任务,要分享一点angular JS的东西.对于一个在前端属于纯新手的我来说,Javascript都还是一知半解,要想直接上手angular JS,遇到的阻力还真是不少.不 ...