springBoot集成Jenkins,实现自动化部署

1.首先安装Jenkins(可以参考官网:https://www.jenkins.io/zh/doc/pipeline/tour/getting-started/)

导入源&&yum安装

sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
yum install jenkins

安装完成后Jenkins启动之前的注意事项,方便后面操作以及少采坑:

默认情况是Jenkins是使用Jenkins用户启动的,但这个用户目前系统并没有赋予权限,这里我们将启动用户修改为root;另外Jenkins默认端口是8080,这个跟tomcat的默认端口冲突,我们也修改一下默认端口。

vi /etc/sysconfig/jenkins

--------------------------------
找到 JENKINS_USER 和JENKINS_PORT ,修改为root和你需要的端口

JENKINS_USER="root"
JENKINS_PORT="8081"

修改完成后就可以启动Jenkins了

service jenkins start
service jenkins stop
service jenkins restart

启动完成后排查防火墙是否为Jenkins设置的端口开放

然后再浏览器中输入ip+端口号就可以访问了,比如:http:192.168.31.101:8081,则会看到这样:

 

按照步骤操作

 

失败不要紧,重试就好

 

 

需要安装的插件默认安装就好了

第二部分:Jenkins集成springboot

进入Jenkins后,添加任务

选取maven项目,如果没有maven项目的话,可以去插件管理中去下载,在集成这部分前,服务器上要安装好git,maven,git版本最好大于1.7,以及jdk,然后在Jenkins中的全局工具配置中配置jdk以及maven的路径:

 

 

创建完任务后:进入任务配置

 

 

 

 

 

Jenkins将代码从你配的分支上拉下来,然后copy到指定执行的文件夹内,然后执行启动,shell脚本:

#!/bin/bash 

#export BUILD_ID=dontKillMe这一句很重要,这样指定了,项目启动之后才不会被Jenkins杀掉。
export BUILD_ID=dontKillMe

#指定最后编译好的jar存放的位置
www_path=/home/xytdroot/servers/food-server/

#Jenkins中编译好的jar位置
jar_path=/home/xytdroot/.jenkins/workspace/foodmgr/target/

#Jenkins中编译好的jar名称
jar_name=psycloud-food-server-v0.1.jar

#端口号
port=1480

#获取运行编译好的进程ID,便于我们在重新部署项目的时候先杀掉以前的进程
pid=$(netstat -nlp | grep :$port | awk '{print $7}' | awk -F"/" '{ print $1 }')

echo "admin used pid=${pid}"
if [ -n "${pid}" ]; then
    kill -9 ${pid}
fi

#进入指定的编译好的jar的位置
cd  ${jar_path}

#将编译好的jar复制到最后指定的位置
cp  ${jar_path}/${jar_name} ${www_path}

#进入最后指定存放jar的位置
cd  ${www_path}

#杀掉以前可能启动的项目进程
#kill -9 ${pid}

#启动jar,指定SpringBoot的profiles为test,后台启动
nohup java -jar ${jar_name} --server.port=${port} &

最后保存这个配置

最后一步,运行springboot

 

设置定时构建:

 

3.3.3 定时触发构建

构建触发器: 只选中 Build periodically, “日程表”格式与 crontab 相似但有细微差别,示例如下:

## 每行由 5 个值组成(空格或TAB分隔),分别表示分(0-59)、时(0-23)、日(1-31)、月(1-12)、周(0-7, 0/7=周日)
## "M,N" 表示M和N;"M-N" 表示范围[M,N];"M-N/X" 表示范围[M,N]内每隔X;"*/X" 表示整个范围内每隔X
## 前面提到的M/N/X的值都可以用H(意为Hash)代替,散列值起到随机值的效果,且同一项目取值稳定,这对于项目多时分散压力很有用。
H/10  H(0-8)  *  *  1-5   ## 触发时间: 工作日、Hour为0~8按哈希随机、Minute以10为间隔
H/10  H       *  *  0,6,7 ## 触发时间: 周末、Hour为全天按哈希随机、Minute以10为间隔
## “日程表”修改后,下方会给出下次执行时间点的预告。
​​​​​

3.3.4 版本提交触发构建

构建触发器: 只选中 Poll SCM,可指定检查 SVN 代码是否有提交的时间:

 
  1. ## 格式与 "Build periodically" 相同

  2. H/10 * * * * ## 任何时候,每隔 30 分钟就检测一次 SVN,如果有提交就启动构建

  • 1
  • 2

jenkins trigger

3.3.5 Build 设置

Root POM: 指定 pom.xml 相对路径 
Goals and options: 指定 mvn 执行目标或选项,设置为 package -Dmaven.test.skip=true

3.3.6 Post Steps 设置

定制构建后的操作,通常选择“Run only if build succeeds”,支持 shell 等脚本;

 
  1. ## 脚本工作目录为: /var/lib/jenkins/workspace/fastjson

  2. # sudo systemctl stop tomcat

  3. # sudo cp -f target/*.war /opt/apache-tomcat-8.5.9/webapps/

  4. # sudo systemctl start tomcat

  5. ls -l target/*.?ar

  • 1
  • 2
  • 3
  • 4
  • 5

jenkins poststep

3.4 手工触发构建

进入 My Views, 右侧看到各个项目; 
点击进入关注的项目,点击左侧的“立即构建”; 
jenkins build
开始构建或构建完毕后,左下方列出每次构建的链接,点击进入某次构建; 
点击左侧的“Console Output”,可查看构建日志,如有报错可以看到; 
jenkins console
纠正错误后,返回到工程,再次点击“立即构建”,直至构建成功; 
如有网络相关报错,重试几次也会成功。

  • 4
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【资源说明】 1、基于SpringBoot+Vue 驾校理论课模拟考试系统(自动化部署)源码+项目说明.zip 2、该资源包括项目的全部源码,下载可以直接使用! 3、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设项目,作为参考资料学习借鉴。 4、本资源作为“参考资料”如果需要实现其他功能,需要能看懂代码,并且热爱钻研,自行调试。 基于SpringBoot+Vue 驾校理论课模拟考试系统(自动化部署)源码+项目说明.zip ## 驾校理论课模拟考试系统 ## 工具 Git Npm Lombok ## CI/CD **具体部署流程看/ServerDeploy/服务器部署流程.txt** Jenkins + Docker 持续集成 ![11](https://raw.githubusercontent.com/1170159634/Mockexam-Server/master/images/%E5%9B%BE%E7%89%8715.png) ### 技术栈 1.后端: ​ 权限控制:SpringSecurity + JWT ​ Ioc框架:SpringBoot ​ 持久层:MybatisPlus + Spring Data JPA ​ 缓存:Redis ​ 图片处理:FastDFS ​ 定时任务:xxl-job 2.前端: ​ Vue、Element-UI ## 功能 系统五个功能模块为:试题管理模块、系统监控模块、模拟考试模块、系统管理模块、个人信息模块。 ![1](https://raw.githubusercontent.com/1170159634/Mockexam-Server/master/images/%E5%9B%BE%E7%89%871.png) ## 登录 ![1](https://raw.githubusercontent.com/1170159634/Mockexam-Server/master/images/%E5%9B%BE%E7%89%872.png) ### **模拟考试模块** **小车(c1,c2)、货车(b2)、客车(a1)** **包含科目一 科目四试题** 1.顺序练习 ![1](https://raw.githubusercontent.com/1170159634/Mockexam-Server/master/images/%E5%9B%BE%E7%89%879.png) 2.随机练习 3.专项练习:按照单选题和判断题划分。 4.模拟考试:随机100道题,计时45分钟。 ![1](https://raw.githubusercontent.com/1170159634/Mockexam-Server/master/images/%E5%9B%BE%E7%89%8710.png) ### **试题管理模块** 1.试题字典:按照指定条件搜索,添加、修改、删除试题(管理员权限)。 ![1](https://raw.githubusercontent.com/1170159634/Mockexam-Server/master/images/%E5%9B%BE%E7%89%874.png) 添加/修改试题: ![1](https://raw.githubusercontent.com/1170159634/Mockexam-Server/master/images/%E5%9B%BE%E7%89%8712.png) 2.推荐试题:按照后台针对用户错题进行计算返回的一定数目的试题。 ![1](https://raw.githubusercontent.com/1170159634/Mockexam-Server/master/images/%E5%9B%BE%E7%89%873.png) ![1](https://raw.githubusercontent.com/1170159634/Mockexam-Server/master/images/%E5%9B%BE%E7%89%875.png) 3.我的错题:每次用户计算错题后进行记录。 ![1](https://raw.githubusercontent.com/1170159634/Mockexam-Server/master/images/%E5%9B%BE%E7%89%876.png) 4.我的收藏:用户收藏的试题。 ![1](https://raw.githubusercontent.com/1170159634/Mockexam-Server/master/images/%E5%9B%BE%E7%89%877.png)

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值