Jenkins+SVN 持续集成环境搭建

  1. 系统结构总述
    创建虚拟机安装 Linux 系统
    版本控制子系统
    – Subversion 服务器
    – 项目对应版本库
    –版本库中钩子程序
    持续集成子系
    –JDK
    –Tomcat
    – Maven
    – Jenkins
    ① 主体查询
    ② SVN插件
    ③ Maven插件
    ④ Deploy to Web Container插件
    应用发布子系统
    –JDK
    –Tomcat
  2. 版本控制子系统
    这里记录版本库的访问账号和密码
    在这里插入图片描述
    注意:在svnserve.conf 文件中 anon-access 一定要打开注释并设置为 none
    在这里插入图片描述
  3. 应用发布子系统
    这里记录Tomcat服务器的账号和密码
    在配置文件:/opt/tomcat/conf/tomcat-users.xml
<rolerolename="manager-gui"/> <rolerolename="manager-script"/> <rolerolename="manager-jmx"/> <rolerolename="manager-status"/> <user username="tomcat_user" password="123456" roles="manager-gui,manager-script,manager-jmx,manager-status"/>

  1. Jenkins主体程序安装配置
    (1)把jenkins.war放在Tomcat解压目录/webapps目录下
    (2)打开 Tomcat 解压目录/server.xml 修改 URL 地址的编码解码字符集
vim/opt/tomcat/conf/server.xml

<Connectorport="8080"protocol="HTTP/1.1" 72 connectionTimeout="20000" 73 redirectPort="8443"URIEncoding="UTF-8"/>

(3)启动Tomcat并在浏览器中访问
网址示例:http://192.168.70.131:8080/jenkins
(4)解锁Jenkins
① 解锁界面
依照提示,查看/root/.jenkins/secrets/initialAdminPassword 文件内容填入文本框

在Linux命令框执行命令
cat /root/.jenkins/secrets/initialAdminPassword

将查询结果输入到输入框中,这里同时也是admin账号的密码
在这里插入图片描述
② 选择插件安装方式:这里使用推荐的
在这里插入图片描述
在这里插入图片描述
安装时出现“X”是由于网络导致安装失败,重新安装即可。
③ 创建账号或以管理员身份继续,可以选择使用admin账号继续
在这里插入图片描述
④ 使用Jenkins
在这里插入图片描述5. 系统初始化配置
(1)系统管理界面
在这里插入图片描述
(2)全局安全配置
在这里插入图片描述
(3)全局工具配置:Maven Configuration
在这里插入图片描述
① 全局工具配置:JDK
在这里插入图片描述
② 全局工具配置:Maven
在这里插入图片描述
③ 全局工具配置:Git
在这里插入图片描述
最后点击保存退出即可
6. 安装插件
在这里插入图片描述

  1. 创建工程
    (1)创建工程
    在这里插入图片描述
    (2)指定工程名称和工程类型
    在这里插入图片描述
    (3)源码管理
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    配好的效果:
    注意:此时Jenkins工作区还没有代码,需要执行一次构建操作后Jenkins才会下载代码
    在这里插入图片描述
    (4)构建
    在这里插入图片描述
    在这里插入图片描述
    (5)构建后操作
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    (6)手动构建
    在这里插入图片描述
    (7)构建触发器
    在这里插入图片描述

远程触发的基本原理是 SVN 服务器给 Jenkins 项目特定的 URL 地址发送请求, 但必须以请求参数的形式携带一个特定值,这个特定值就是这里的“身份验证令牌”。 比如我们这个项目的地址触发地址是: http://192.168.70.131:8080/jenkins/job/ProOne/build身份验证令牌是: ATGUIGU_TOKEN ,那么最终的访问地址就是: http://192.168.70.131:8080/jenkins/job/ProOne/build?token=ATGUIGU_TOKEN,触发访问地址中Jenkins 访问地址是根据实际情况改变的,项目名称根据实际 情况改变,其他都不变。
(8)获取crumb值
在这里插入图片描述
在这里插入图片描述
携带 APIToken 访问下面地址: http://admin:090d592c760bf922d554ed4b1abb2137@192.168.70.131:8080/jenkins/crumbIssuer/api/xml
在这里插入图片描述
则触发 Jenkins 远程构建时需要携带的请求消息头就是: Jenkins-Crumb:5dbccaf47a86bf5b675456f58855fe16
(9)Linux的curl命令
Linux 的 curl 命令用来发送 HTTP 请求:
-X 参数:指定请求方式
-v 参数:显示响应结果
-u 参数:携带用户名/密码
-H 参数:携带请求消息头信息

curl -X post -v -u [Jenkins 用户名]:[Jenkins 密码] -H "请求消息头信息" http://[服务器 IP 地址]:[服务器端口 号]/jenkins/job/[Jenkins 项目名称]/build?token=[身份验证令牌]
案例:
curl -X post -v -u admin:2f6bff33bda14baba83ba1c002045f05 -H "Jenkins-Crumb:88a12946e07d82b3b0d567c7c4610c9a" http://192.168.70.131:8080/jenkins/job/ProOne/build?token=ATGUIGU_TOKEN

(10)编辑 SVN版本库中的钩子程序
① 钩子程序由 post-commit.tmpl 复制得到
这里注意不要使用任何扩展名。如果按照我们习惯的使用.sh 扩展名则钩 子程序无法正常工作。记得使用 chmod 命令设置为可执行权限
② 把原有内容注释,加入 curl 命令
在这里插入图片描述
(11)测试
在Eclipse中提交修改,在页面上查看显示内容变化
(12)补充
如果发生 Jenkins 服务器从 SVN 服务器下载代码不是最新版的情况,那么就在 SVN 服务器的 URL 地址后面加上@HEAD 强制要求下载最新版。
在这里插入图片描述

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐