jenkins自动部署springboot

安装jenkins

安装步骤省略,网上很多,这里就不再啰嗦了。
建议安装的插件

  • maven 项目插件 ,之后在构建新的项目时,可以直接选择构建一个maven项目
    在这里插入图片描述

Maven Integration plugin

  • 汉化插件
    locale plugin 这个插件效果不好 点击跳转
    Localization: Chinese (Simplified) 这个效果也不好但是比上面那个稍微好点 点击跳转

我个人两个都装了

构建项目

  • 点击新建
  • 选择maven项目(如果之前没有安装maven的插件这里是没有这个选项的)
    在这里插入图片描述
  • 填写项目构建描述,以及完善对老项目构建的保留时间
    在这里插入图片描述
    • 参数话构建
      在这里插入图片描述
  • 添加项目地址(github | gitlab | gitee )都可以在这里插入图片描述
    如果你是第一次构建项目,而且没有全局配置过你的项目账号和密码,你可以在这里直接配置,点击选择Credentials旁边的添加,输入你的账号即可
    在这里插入图片描述
  • 配置拉去后选择构建的分支
    在这里插入图片描述
    我这里就直接matser分支了
  • 每当构建SNAPSHOT依赖项时构建
    在这里插入图片描述
  • 代码被拉取下来后做的事情
    在这里插入图片描述
  • 点击构建时执行的shell脚本
    在这里插入图片描述
    我这里选择是脚本,大家可以选择其他的方式,该部分脚本我是看了别人的博客点击跳转,非常感谢,他的脚本!!以下是该脚本内容,我改了文件命名以及路径,事后去看了下这个脚本,大致说下
    4、重点是脚本
#!/bin/bash 
cd /home/admin/jenkins/jenkins_springboot_shell
echo "Execute shell Start"
sh stop.sh
sh replace.sh
echo "Execute shell Finish"
chmod 777 /home/admin/jenkins/jenkins_springboot_shell/startup.sh
BUILD_ID=dontKillMe nohup /home/admin/jenkins/jenkins_springboot_shell/startup.sh &

三个文件内容

  • stop.sh
    停止之前执行的springboot项目,因为需要从新去拉去项目代码,重新构建
    • 先进入jenkins_springboot_shell目录
    • 输出一句话Stopping SpringBoot Application for CMP
    • 使用命令ps -ef | grep jenkins-demo-0.0.1-SNAPSHOT.jar | grep -v grep | awk ‘{print $2}’
      • 这部分命令可以分为3部分
命令说明
ps -ef | grep jenkins-demo-0.0.1-SNAPSHOT.jar查看系统进程中的含有jenkins-demo-0.0.1-SNAPSHOT.ja的进程

在这里插入图片描述
但是会有2个进程,此时就需要过滤

命令说明
grep -v grep-v 是反转 就是不包含的意思,这就会吧包含grep的过滤掉,也就是会把第二条过滤掉

接下使用awk命令将进程id取出即可

命令说明
awk ‘{print $2}选择第二个参数
  • 如果pid不为空则使用kill -9 pid 将该进程删除
#!将应用停止
#!stop.sh
#!/bin/bash
cd /home/admin/jenkins/jenkins_springboot_shell
echo "Stopping SpringBoot Application for CMP"
ls
pid=`ps -ef | grep jenkins-demo-0.0.1-SNAPSHOT.jar | grep -v grep | awk '{print $2}'`
if [ -n "$pid" ]
then
#!kill -9 强制终止
   echo "kill -9 的pid:" $pid
   kill -9 $pid
fi
  • replace.sh
    大致意思就如果deploy_cmp文件里面有jar包说明之前发布过,则将该jar包放到deploy_cmp_bak目录下加上时间备份,再将最新构建的jar包放到deploy_cmp目录下,以后就直接从该目录下启动jar包
jar_name=jenkins-demo-0.0.1-SNAPSHOT.jar
#!编译好的jar包存放地址
file_path=/root/.jenkins/workspace/test-springboot/target
#!将现有的jar备份后,将新的jar包替换
file="/home/admin/jenkins/deploy_cmp/jenkins-demo-0.0.1-SNAPSHOT.jar"
if [ -f "$file" ]
then
mv /home/admin/jenkins/deploy_cmp/jenkins-demo-0.0.1-SNAPSHOT.jar  /home/admin/jenkins/deploy_cmp_bak/jenkins-demo-0.0.1-SNAPSHOT.jar.`date +%Y%m%d%H%M%S`
fi
cp /root/.jenkins/workspace/test-springboot/target/jenkins-demo-0.0.1-SNAPSHOT.jar  /home/admin/jenkins/deploy_cmp/

  • startup.sh
    这里就是直接进入deploy_cmp目录启动jar包即可(这里不会端口冲突,之前在stop.sh中以及杀掉了进程)
echo "授予当前用户权限"
chmod 777 /home/admin/jenkins/deploy_cmp/jenkins-demo-0.0.1-SNAPSHOT.jar
echo "执行....."
cd /home/admin/jenkins/deploy_cmp/
java -jar jenkins-demo-0.0.1-SNAPSHOT.jar
echo "**********************cmp on  jenkins started*************************"

目录说明
deploy_cmpjar包被打包后放置的目录(运行时以该目录的jar包为准)
deploy_cmp_bak再次打包时保留上一个版本的jar目录 (保留以前历史的打包版本)
jenkins_springboot_shell存放stop.sh、start.sh、replace.sh 脚本命令的目录

大致目录如下
在这里插入图片描述
deploy_cmp和deploy_cmp_bak目录应该大家是空的,我这里是因为我之前测试了下

测试

点击开始构建按钮
在这里插入图片描述

修改项目代码
在这里插入图片描述

  • 查看jenkins日志
    在这里插入图片描述
  • shell 脚本执行
    在这里插入图片描述
  • 构建完成
    在这里插入图片描述
  • 访问项目
    在这里插入图片描述

注意点

  • 在粘贴shell脚本的时候注意空格,否则会出现
    在这里插入图片描述
  • 关于jenkis在那?
    一旦安装成功会在当前用户家下有个隐藏文件.jenkins
  • 关于项目构建后jenkins的变化
    一旦项目构建成功就会多出一个workspace的目录,里面就是项目构建代码
    在这里插入图片描述
    在这里插入图片描述
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值