Jenkins 持续集成安装及使用简介
一、前言
持续集成(Continuous integration,简称CI)指的是,频繁地(一天多次)将代码集成到主干。
持续集成的目的,就是让产品可以快速迭代,同时还能保持高质量。它的核心措施是,代码集成到主干之前,必须通过自动化测试。只要有一个测试用例失败,就不能集成。
Jenkins 是基于 Java 开发的一种持续集成工具,用于监控持续重复的工作,下载地址:https://bitnami.com/stack/jenkins/installer,提供了 Windows、Linux 和 OS X 平台的安装包。最简便的还是使用提供的 war 包直接启动,下载地址:http://mirrors.jenkins-ci.org/,此时必须保证系统中已经安装了 jdk,最好是 jdk1.5 以上。
二、初始化 Jenkins 插件和管理员用户
下载好 jenkins.war 包之后,在 cmd 下切换到下载目录,然后执行如下命令:
java -jar jenkins.war
启动了自带的 Jetty 服务器
生成随机口令
这样,jenkins 就开始启动了,它的 war 包中自带 Jetty 服务器,第一次启动 Jenkins 时,出于安全考虑,Jenkins 会自动生成一个随机的安装口令。注意控制台输出的口令,复制下来。在浏览器中输入地址:
首次启动 jenkins 时如果发现一直卡在启动界面,提示:Jenkins正在启动,请稍后...
你可以按 Ctrl + C 强制结束启动,然后再次执行上面的命令,发现就会继续启动了,或者可以修改一下配置文件,因为你所在网络可能被限制了,如下:
进入 jenkins 的工作目录,默认是:C:\Users\Administrator\.jenkins
也可以自定义 jenkins 的工作目录,设置 JENKINS_HOME 环境变量,启动 jenkins.war 后将被解压到 JENKINS_HOME 目录下,同时所有 jenkins 的 plugins 和 配置文件等也将被写入到 JENKINS_HOME 所设置的目录下。
打开 hudson.model.UpdateCenter.xml,将 http://updates.jenkins-ci.org/update-center.json 替换成 http://mirror.xmission.com/jenkins/updates/update-center.json,还是不行的话找到 updates 目录下的 default.json 把里面所有的谷歌地址改成百度的,即将 http://www.google.com/ 替换为 http://www.baidu.com/。
2.1 进入如下页面,输入上面出现的口令
启动后第一次进入如下页面
2.2 进入选择安装插件的页面后,可以选择安装社区推荐的插件或自定义安装,此处选择前者
一般至少需要安装如下几个插件:
Git/Subversion、SSH、Publish Over SSH、Maven 等。
2.3 创建管理员用户
填入账户信息后,进入完成页面:
安装完成。
三、配置 Jenkins 构建工具
用管理员账号第一次登录 Jenkins 后,需要在 "系统管理" -> "全局工具配置" 中,设置你要使用到的构建工具和 JDK 版本。
3.1 进入 jenkins 主界面
3.2 进入全局工具配置页面
点击 "系统管理" -> "全局工具配置"
进入后配置构建工具
3.3 配置 Maven
如果机器上已经安装了 Maven,则在 Maven_HOME 输入框中提供具体的安装路径。否则,你可以选择需要的 maven 版本,让 Jenkins 为你自动下载 maven。
3.4 配置 JDK
同理,如果机器上已经安装了 JDK,则在 JAVA_HOME 输入框中提供具体的安装路径。否则,你可以选择需要的 JDK 版本,让 Jenkins 为你自动下载 JDK。
3.5 配置 Git
如果之前没有为 Jenkins 安装 Git、Subversion(SVN)或 CVS 插件,可以在 "系统管理" -> "管理插件" 中安装。
四、构建作业
构建作业是 Jenkins 构建过程的核心。
4.1 点击创建一个新任务,进入创建项目类型选择页面
如果发现没有 "构建一个maven项目" 这一项,则需要安装 Maven Integration 插件,如下:
4.2 进入构建作业的详细页面
4.3 源码管理
根据自己项目的实际情况选择源码管理的方式:
4.4 构建触发器
其中有 5 个参数,分别表示:
MINUTE:Minutes within the hour(0-59)
HOUR:The hour of the day(0-23)
DOM:The day of the month(1-31)
MONTH:The month(1-12)
DOW:The day of the week(0-7)where 0 and 7 are sunday
常用配置:
0 * * * * 为每个小时执行一次
0 1 * * * 为没天的凌晨1点执行一次,这种配置的设置,适合执行一些冒烟的测试用例
第一个参数:min,0-59
第二个参数:hour:0-23
第三个参数:day:0-31
第四个参数:month:1-12
第五个参数:week:0-7(0 和 7 代表 Sunday)
Jenkins 中 "Poll SCM" 和 "Build periodically"的区别
Poll SCM:定时检查源码变更(根据SCM软件的版本号),如果有更新就checkout最新code下来,然后执行构建动作,配置如下:
*/5 * * * * (每5分钟检查一次源码变化)
Build periodically:周期进行项目构建(它不care源码是否发生变化),配置如下:
0 2 * * * (每天2:00 必须build一次源码)
4.5 构建
在 "Build" 中,默认的项目根目录的 Root POM,即 pom.xml。如果 pom.xml 不在根目录下,就填入子目录,例如:cloud/pom.xml。
如果源码管理中选择 "None",此处点 "高级..." 可以自定义工作空间中的项目地址,如下:
保存上面的构建作业:
五、构建
构建作业之后,就可以执行构建过程了。
5.1 执行构建的方式
第一种:点击任务名称的右边的小三角,然后点击 "立即构建"
第二种:按照 "构建触发器" 中设置的 "日程表"定时自动触发构建
5.2 构建结果
第一列是 "上次构建状态显示",是一个圆形图标,一般分为四种:
蓝色:构建成功;
黄色:不确定,可能构建成功,但包含错误;
红色:构建失败;
灰色:项目从未构建过,或者被禁用;
如上显示蓝色,表示构建成功。
注意:手动触发构建的时间与自动定时构建的时间互不影响。
5.3 查看控制台输出
可以查看构建成功的控制台输出:
控制台信息显示将构建的 jar 包从项目的 target 目录下归档到了 jenkins 指定的目录下了
此目录显示按照不同的构建编号,构建成功的项目
这与该工程的构建历史中的编号相对应
如果构建失败,可以通过查看构建失败的控制台输出,来得到具体的出错信息,便于调试
点击后查看错误信息,如下:
第二列是 "编译晴雨表",如下:
如果看到你项目变成阴云或者下雨,说明你的项目稳定性不好,需要去查找原因,解决问题。
5.4 部署
如果要部署构建好的 war 包,可以在 Post Steps 中填上 shell 命令,直接用脚本部署。
另一种方式是创建另外一个构建项目,手动触发部署。
无论用哪种方式,都是为了确保编译、部署是通过持续集成服务器完成的,而不是某台开发机器。
Jenkins 持续集成安装及使用简介的更多相关文章
- windows系统下Jenkins 持续集成安装使用
先要下载安装Tomcat,基于Java的web项目可以通过Tomcat运行.下载Jenkins,注意要安装在Tomcat的webapps目录下.安装完Jenkins会自动通过浏览器打开http://l ...
- Jenkins持续集成企业实战系列之Jenkins持续集成简介及安装-----02
1. Jenkins持续集成简介 注:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任. 最初接触Jenkins也是由于公司需求, ...
- Jenkins持续集成【简介】
1.1 目前主流网站部署的流程 目前主流网站部署方法,通过Hudson/Jenkins工具平台实现全自动部署+测试,是一个可扩展的持续集成引擎,是一个开源软件项目,旨在提供一个开放易用的软件平台 ...
- 持续集成①安装部署jenkins从git获取代码
持续集成①安装部署jenkins从git获取代码 一:持续集成的概念: 1.1:总体的概括 持续集成Continuous Integration 持续交付Continuous Delivery 持续部 ...
- [Jenkins]持续集成环境下fingbug插件的安装使用与配置
参考:https://wiki.jenkins.io/display/JENKINS/FindBugs+Plugin 突然,天降杂事.我是想安安静静的做个美丽的测试...但是事与愿违,项目经理叫我帮忙 ...
- Jenkins持续集成(上)-Windows下安装Jenkins
环境:Windows 2008 R2.Jenkins2.235.1: 概要 前面写过一篇文章,<自动发布-asp.net自动发布.IIS站点自动发布(集成SLB.配置管理.Jenkins)> ...
- 【转】jenkins持续集成配置
搭建jenkins持续集成服务器 1.jenkins简介 Jenkins,前身为Hudson,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,包括: 持续的软件版本发布/测试项目. 监控 ...
- Python接口测试实战5(上) - Git及Jenkins持续集成
如有任何学习问题,可以添加作者微信:lockingfree 课程目录 Python接口测试实战1(上)- 接口测试理论 Python接口测试实战1(下)- 接口测试工具的使用 Python接口测试实战 ...
- Jenkins持续集成企业实战系列之Jenkins插件下载及邮件配置-----05
注:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任. 最初接触Jenkins也是由于公司需求,根据公司需求Java代码项目升级的.(公司是 ...
随机推荐
- [原创] Nginx1.13版本reload过程对TCP包影响的测试
Nginx1.13版本reload过程中各项连接情况和状态的测试.测试Nginx1.13 Reload过程中,对客户端和服务器的TCP层面的包影响. 1)对客户端开启长连接,服务端开启/不开启 ...
- 剖析nsq消息队列(一) 简介及去中心化实现原理
分布式消息队列nsq,简单易用,去中心化的设计使nsq更健壮,nsq充分利用了go语言的goroutine和channel来实现的消息处理,代码量也不大,读不了多久就没了.后期的文章我会把nsq的源码 ...
- CocosBuilder 学习笔记(1) CCBReader 解析.ccbi文件流程
1. 简介 CocosBuilder是免费开源的Cocos2d UI编辑器. .ccb文件是CCB项目的原始文件. .ccbi文件是CCB项目发布后的生成的二进制文件.CCBReader可以快速通过该 ...
- Setup Factory 9 简单打包
由于项目资源太大,使用VS自带打包工具无法实现需求,所以Setup Factory 9进行打包生成多个文件的方案,下面记录使用方法: 一:这里点击下载:下载,提取码:tt7a 二:下载完安装需要注册码 ...
- 单页面应用的History路由模式express后端中间件配合
这篇文章主要分享一下通过HTML5的history API的时候,使用NodeJS后端应该如何配置,来避免产生404的问题,这里是使用的express的框架,主要是通过connect-history- ...
- Delphi - Indy TIdThreadComponent 线程研究
Indy IdThreadComponent 线程研究 前几天在开发数据实时解析功能模块的时候,发现解析数据量巨大,特别耗时,程序一跑起来界面假死. 为了优化用户体验,采用了Indy 自带的IdThr ...
- Netty源码分析 (二)----- ServerBootstrap
BootStrap在netty的应用程序中负责引导服务器和客户端.netty包含了两种不同类型的引导: 1. 使用服务器的ServerBootStrap,用于接受客户端的连接以及为已接受的连接创建子通 ...
- tit文件的加密解密
加密 # hello 源文件 # ifmmp 加密 # hello 解密 file = open("Email.txt","r") # 源文件 只针对字符不需要 ...
- HDU-3400Line belt-三分再三分-求距离中要加esp
传送门:Line belt 参考:http://blog.csdn.net/hcbbt/article/details/39375763 题意:在一个平面途中,有一条路ab,还有一条路cd:假设在ab ...
- HDU-4027-Can you answer these queries?线段树+区间根号+剪枝
传送门Can you answer these queries? 题意:线段树,只是区间修改变成 把每个点的值开根号: 思路:对[X,Y]的值开根号,由于最大为 263.可以观察到最多开根号7次即为1 ...