Linux(CentOS 7 )基于git、maven实现springboot自动化部署

前提

1、已安装git、maven、java环境

不清楚的可以看另一篇文章: https://blog.csdn.net/weixin_44646763/article/details/137041469

2、已为项目设置远程 git 仓库 origin (可以通过:git remote add origin https://github.com/xxx/xxx.git设置)

创建自动化部署脚本

创建脚本文件autoDeploy.sh

bash 复制代码
#!/bin/sh
echo =================================
echo  自动化部署脚本启动
echo =================================

echo 停止原来运行中的工程
APP_NAME=test

# 查找进程id是否存在,存在则停止进程
tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
    echo 'Stop Process...'
    kill -15 $tpid
fi

# 睡眠两秒
sleep 2

# 再次查找进程id,存在则杀死进程(双重保障进程已停止)
tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
    echo 'Kill Process!'
    kill -9 $tpid
else
    echo 'Stop Success!'
fi

echo 准备从Git仓库拉取最新代码
# ---这里改为项目所在目录---
cd /usr/local/project/test_project/test

echo 开始从Git仓库拉取最新代码
git pull origin master
echo 代码拉取完成

echo 开始打包
# 先clear在打包,取消单元测试
output=`mvn clean package -Dmaven.test.skip=true`

# 进入项目打包后的文件夹
cd ./target

echo 启动项目
# ---test-0.0.1-SNAPSHOT.jar为打包后生成的jar包,要自行改为项目打包后的jar包名---
# ---autoDeploy.log为定义的日志记录文件,不存在时会自动创建---
nohup java -jar test-0.0.1-SNAPSHOT.jar &> autoDeploy.log &
echo 项目启动完成

APP_NAME=test,这里test要自行改为对应的项目名,用于脚本可以找到进程
/usr/local/project/test_project/test 为我项目所在目录,自行改为自己项目的目录
test-0.0.1-SNAPSHOT.jar,为我这里打包后生成的jar包,要自行改为对应项目打包后的jar包名(不清楚jar名的可以先通过 mvn package手动打包一次)

为脚本文件添加权限

在脚本文件目录下运行命令:

bash 复制代码
chmod 777 bootStart.sh

运行脚本

bash 复制代码
./autoDeploy.sh

验证

输入命令行:

bash 复制代码
ps -ef | grep java

可以看到项目已经在后台正常运行了

相关推荐
171320330计算机毕设编程6 分钟前
计算机毕业设计 基于Hadoop的新能源汽车发展前景分析 LW PPT
java·大数据·hadoop·python·算法·随机森林·线性回归
技术小结-李爽8 分钟前
【工具】怎么在终端中启动springboot项目?
java·spring boot·后端·maven
Msshu12314 分钟前
PD快充诱骗取电芯片工作原理,XSP17诱骗取电5V9V12V15V20V功能测试
spring boot·spring cloud·sentinel·java-rocketmq·java-zookeeper·java-consul·java-activemq
Shaoshing14 分钟前
消息发送
java·开发语言
Code_Solitude32 分钟前
c语言:指针(3)+冒泡排序
java·c语言·算法
乌暮43 分钟前
从 `println` 到生产级日志:Spring Boot 日志体系完全指南
java·开发语言·jvm·spring boot·后端·学习·面试
远方16091 小时前
108-ORA-00600 [kdsgrp1-qetlbr] 内部错误排查与 RMAN 块级恢复
大数据·linux·数据库·oracle
脉动数据行情1 小时前
Java OkHttp 对接国际期货批量行情 SpringBoot 定时落库实践
java·spring boot·okhttp
鶴哥只手遮天1 小时前
Spring Boot 4.1.1 深度源码解析-第 29 章 · 测试体系:`@SpringBootTest`、切片测试、Testcontainers
java·后端·开源
TDTC_XQ1 小时前
模板类的写法
linux·c++