Jenkins+gitee+springboot自动构建发布(简单案列)

先安装 jdk(推荐使用yum 安装),因为下载jenkins后 需要启动jenkins项目;

目录

1. Jenkins安装启动

2. jenkins安装插件、配置JDK

1.1 安装 maven 插件

1.2 配置jdk 

3. Jenkinsc创建一个新的构建程序

3.1 新建item任务

3.2 设置任务名称,并选择maven(因为我们最终目的要时间自动重新构建springboot项目)

3.3 源码管理配置

3.4 设置构建触发器,即什么时候促发构建(理论上 只要有开发人员 push 提交代码时,jenkins就自动重构项目)

3.5 构建环境、pre Steps 根据个人情况设置

3.6 build配置

3.7 post Steps配置(很重要)

3.7 构建设置、构架后操作 配置工具个人情况配置


1. Jenkins安装启动

到Jenkins的官网:http://jenkins.io 下载jenkins.war,然后将jenkins.war文件上传到Linux服务器,也可以使用yum安装或docker安装

启动项目命令(springboot启动方式如下,本地需要先安装 jdk)


nohup java -Dhudson.util.ProcessTree.disable=true -jar jenkins.war  --ajp13Port=-1 --httpPort=8090 &

-Dhudson.util.ProcessTree.disable=true 解决jenkins自动杀掉衍生进程;

2. jenkins安装插件、配置JDK

安装成功后 需要在 Jenkins 管理菜单

1.1 安装 maven 插件

因为本地 启动Maven项目时肯定需要下载maven依赖(如果 需要设计到 gitee仓库 还可以查询 gitee 集成插件)。

选择 Maven Integration 插件

1.2 配置jdk 

 

3. Jenkinsc创建一个新的构建程序

3.1 新建item任务

3.2 设置任务名称,并选择maven(因为我们最终目的要时间自动重新构建springboot项目)

3.3 源码管理配置

3.4 设置构建触发器,即什么时候促发构建(理论上 只要有开发人员 push 提交代码时,jenkins就自动重构项目)

3.5 构建环境、pre Steps 根据个人情况设置

3.6 build配置

clean package -Dmaven.test.skip=true

3.7 post Steps配置(很重要)

该代码需要根据自己的项目设置(脚本不难)

#!/bin/bash 
echo "环境构建中..."
#export BUILD_ID=dontKillMe这一句很重要,这样指定了,项目启动之后才不会被Jenkins杀掉。
export BUILD_ID=dontKillMe
 
#指定最后编译好的jar存放的位置
www_path=/home/xytdroot/servers/food-server/
 
#Jenkins中编译好的jar位置
jar_path=/var/lib/jenkins/workspace/shiro-admin/target/
 
#Jenkins中编译好的jar名称
jar_name=shiro-admin-0.0.1-SNAPSHOT.jar
 
#端口号
port=8081

# 判断项目的编译目录是否存在
if [ ! -d "${www_path}" ]; then
	mkdir -p ${www_path}
fi

if [ ! -d "${jar_path}" ]; then
	mkdir -p ${jar_path}
fi

 
#获取运行编译好的进程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} &



# 附加代码-控制项目回滚 (可删除)

# 检查项目端口是否被占用(项目是否启动成功),如果占用输出1,如果没有被占用输入0
sleep 38
pIDa=`lsof -i :${port}|grep -v "PID" | awk '{print $2}'`
echo $pIDa
if [ "$pIDa" != "" ];
then
   echo "开始备份当前项目版本,用于后续项目版本启动失败后回滚的项目版本..."
   # 判断记录版本目录是否存在
   if [ ! -d "${www_path}/version" ]; then
		mkdir ${www_path}/version
   fi
   # 本分本次执行项目jar文件,后续版本jar运行失败后 回滚到该本版中
   cat < ${www_path}${jar_name} > ${www_path}/version/${jar_name}
   echo "项目备份成功"
   
else
   echo "项目启动失败,尝试回滚上一次正确启动的项目版本..."
   cat < ${www_path}/version/${jar_name} > ${www_path}${jar_name}
   nohup java -jar ${www_path}${jar_name} --server.port=${port} &
fi




3.7 构建设置、构架后操作 配置工具个人情况配置

-------------------------------------项目配置成功-------------------------------------

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ark方舟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值