一、持续集成和Jenkins工具简介
1.1、什么是持续集成?
持续集成 Continuous integration ,简称CI。
随着软件开发复杂度的不断提高,团队开发成员间如何更好地协同工作以确保软件开发的质量已经慢慢成为开发过程中不可回避的问题。尤其是近些年来,敏捷(Agile)在软件工程领域越来越红火,如何能再不断变化的需求中快速适应和保证软件的质量也显得尤其的重要。持续集成正是针对这一类问题的一种软件开发实践。它倡导团队开发成员必须经常集成他们的工作,甚至每天都可能发生多次集成。而每次的集成都是通过自动化的构建来验证,包括自动编译、发布和测试,从而尽快地发现集成错误,让团队能够更快的开发内聚的软件。
持续集成具有的特点:
- 它是一个自动化的周期性的集成测试过程,从检出代码、编译构建、运行测试、结果记录、测试统计等都是自动完成的,无需人工干预;
- 需要有专门的集成服务器来执行集成构建; 需要有代码托管工具支持如:Git以及可视化界面Gogs。
持续集成的作用:
- 保证团队开发人员提交代码的质量,减轻了软件发布时的压力;
- 持续集成中的任何一个环节都是自动完成的,无需太多的人工干预,有利于减少重复过程以节省时间、费用和工作量。
1.2、Jenkins简介
Jenkins,原名Hudson,2011年改为现在的名字,它 是一个开源的实现持续集成的软件工具。官方网站:http://jenkins-ci.org/。
Jenkins 能实施监控集成中存在的错误,提供详细的日志文件和提醒功能,还能用图表的形式形象地展示项目构建的趋势和稳定性。
特点:
- 易安装:仅仅一个 java -jar jenkins.war,从官网下载该文件后,直接运行,无需额外的安装,更无需安装数据库;
- 易配置:提供友好的GUI配置界面;
- 变更支持:Jenkins能从代码仓库(Subversion/CVS)中获取并产生代码更新列表并输出到编译输出信息中;
- 支持永久链接:用户是通过web来访问Jenkins的,而这些web页面的链接地址都是永久链接地址,因此,你可以在各种文档中直接使用该链接;
- 集成E-Mail/RSS/IM:当完成一次集成时,可通过这些工具实时告诉你集成结果(据我所知,构建一次集成需要花费一定时间,有了这个功能,你就可以在等待结果过程中,干别的事情);
- JUnit/TestNG测试报告:也就是用以图表等形式提供详细的测试报表功能;
- 支持分布式构建:Jenkins可以把集成构建等工作分发到多台计算机中完成;
- 文件指纹信息:Jenkins会保存哪次集成构建产生了哪些jars文件,哪一次集成构建使用了哪个版本的jars文件等构建记录;
- 支持第三方插件:使得 Jenkins 变得越来越强大。
二、安装Jenkins工具
2.1、JDK安装
Jenkins工具依赖于jdk工具,故需要先安装jdk,安装步骤参考博文:Linux(Centos)安装&卸载jdk1.8(解压版)教程
2.2、Jenkins安装与启动
Jenkins官网:https://www.jenkins.io/zh/
(1)下载jenkins软件包(需联网)
[root@localhost java]# sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
(2)导入jenkins公钥
[root@localhost java]# sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
(3)安装jenkins(yum方式)
[root@localhost java]# yum install jenkins
已加载插件:fastestmirror, langpacks
Determining fastest mirrors
* base: mirrors.ustc.edu.cn
* extras: mirrors.163.com
* updates: mirrors.ustc.edu.cn
base | 3.6 kB 00:00:00
docker-ce-stable | 3.5 kB 00:00:00
extras | 2.9 kB 00:00:00
jenkins | 2.9 kB 00:00:00
updates | 2.9 kB 00:00:00
(1/4): extras/7/x86_64/primary_db | 222 kB 00:00:00
(2/4): updates/7/x86_64/primary_db | 3.7 MB 00:00:00
(3/4): jenkins/primary_db | 35 kB 00:00:00
(4/4): base/7/x86_64/primary_db | 6.1 MB 00:00:00
正在解决依赖关系
--> 正在检查事务
---> 软件包 jenkins.noarch.0.2.249.3-1.1 将被 安装
--> 解决依赖关系完成
依赖关系解决
====================================================================================================================
Package 架构 版本 源 大小
====================================================================================================================
正在安装:
jenkins noarch 2.249.3-1.1 jenkins 64 M
事务概要
====================================================================================================================
安装 1 软件包
总下载量:64 M
安装大小:64 M
Is this ok [y/d/N]: y
Downloading packages:
jenkins-2.249.3-1.1.noarch.rpm | 64 MB 00:00:19
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
正在安装 : jenkins-2.249.3-1.1.noarch 1/1
验证中 : jenkins-2.249.3-1.1.noarch 1/1
已安装:
jenkins.noarch 0:2.249.3-1.1
完毕!
[root@localhost java]#
(4)修改jenkins用户名和端口
[root@localhost java]# vi /etc/sysconfig/jenkins
默认为:
JENKINS_USER=“jenkins”
JENKINS_PORT=“8080”
这里只修改了端口为8888
,以防止端口冲突。
(5)启动Jenkins服务
[root@localhost java]# systemctl start jenkins
第一次启动报错,查看报错详情:
说明: 从
“Starting Jenkins bash: /usr/bin/java: 没有那个文件或目录”
可以看出,Jenkins配置的jdk路径有问题。
【解决方法】:
① 查看当前jdk路径
[root@localhost java]# echo $JAVA_HOME
/user/java/jdk8
② 修改Jenkins服务配置文件中的jdk路径(如下图)
[root@localhost java]# vi /etc/init.d/jenkins
如上图,83行,修改为:
当前jdk路径
/bin/java
③ 重新加载配置信息
[root@localhost java]# systemctl daemon-reload
④ 重新启动Jenkins服务
[root@localhost java]# systemctl start jenkins
或
[root@localhost java]# service jenkins start
(6)浏览器访问Jenkins
访问地址:http://192.168.116.161:8888
需要等好长时间,才能进入如下界面(按照提示获取并输入管理员密钥):
安装插件的过程太慢了,刷新或重新进入安装插件失败后,点击“继续”按钮,按照提示,先创建管理员用户(如下图):
之后进入如下主页面:
提示(界面重启方法),浏览器地址栏输入:http://192.168.116.161:8888/
restart
2.3、Jenkins安装插件
① 更换插件更新源
原网址(超慢):https://updates.jenkins.io/update-center.json
新网址:https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
② 手动安装必备插件
注: 根据提示,手动安装需要的插件,或降级安装的不适合的插件。
个人需要汉化插件:Localization: Chinese (Simplified)
手动完成初始化安装失败的必装插件:
credentials-binding
lockable-resources
ws-cleanup
github
github-api
github-branch-source
pipeline-github-lib
pipeline-graph-analysis
pipeline-model-api
pipeline-rest-api
pipeline-stage-view
pipeline-model-definition(失败,需要更新的版本2.264)
workflow-aggregator(失败,需要更新的版本2.264)
workflow-cps-global-lib
安装Maven插件(必须安装
):
Maven Integration
提示: 由于旧版对很多新插件支持不适配,
为方便安装使用
,可按照下一节教程更新Jenkins。
三、升级Jenkins(根据实际情况,可跳过)
① 可从下图位置下载新jar包:
② 查看Jenkins的war所在目录:
[root@localhost java]# ps -aux | grep jenkins
③ 停止运行Jenkins
[root@localhost java]# systemctl stop jenkins
④ 重命名备份旧 jenkins.war包
[root@localhost jenkins]# mv jenkins.war jenkins.war.old
⑤ 上传新war包到 /usr/lib/jenkins
目录,并启动Jenkins服务:
[root@localhost java]# systemctl start jenkins
⑥ 浏览器访问Jenkins
访问地址:http://192.168.116.161:8888
提示(界面重启方法),浏览器地址栏输入:http://192.168.116.161:8888/
restart
四、Jenkins全局工具配置
4.1、Linux安装Maven仓库
安装方法参考博文:Linux(Centos7)安装Maven仓库(配置本地仓库、配置阿里镜像源)
4.2、Linux安装git
可查看博文:Linux(Centos7)安装git(yum方式、源码编译方式)
为简便,yum方式安装:
[root@localhost java]# yum -y install git
安装完后,查看版本:
[root@localhost java]# git --version
git version 1.8.3.1
[root@localhost java]#
4.3、Jenkins全局工具配置
进入全局工具配置页面:
(1)配置jdk
注: 不要勾选“Install automaticcally”。
(2)配置git
(3)配置maven
最后点击“保存”按钮,配置完成!