利用Maven、Git编写shell脚本实现SpringBoot自动部署到Linux

SpringBoot+Maven+Git+shell实现打成自动Jar包部署到Linux

刚刚经历完我实习的第一个小项目,一个关于医疗影像归档的SpringBoot、Mysql、MyBatis plus、Thymeleaf、swaggerUi、shiro的基于dcm4che开源库进行开发的。
GitHub - weiyangtang/dcm4cheSystem: 对dicom文件进行归档整理的医疗影像平台
不过经历完这个项目之后,我有一些切肤之痛

  1. 版本控制不规范,代码量一大,常常是重新创建一个项目,项目写完,好多版本的,乱糟糟的,一定要搞版本控制!!
  2. 项目部署很烦人,平时开发是在我自己电脑上运行,到最后要部署了,才开始把代码搬到Linux服务器上,中间出现了好多因为路径、文件权限、用户权限、端口冲突的问题,外加上项目测试等,然后一大堆问题全部积累在同一个时间段,导致部署很艰难。在此非常感谢我们的Linux大佬,马大佬。Linux命令烂熟于心,硬件网络都能处理,佩服佩服。
    不好意思,废话太多了,为了解决上面的问题,我根据网上的博客,针对我的项目改了一些,实现了在任何平台开发,代码通过git提交到远端仓库,在Linux服务器执行sudo bash autoRunSpringboot.sh,即可实现在Linux服务器上同步更新部署

创建一个autoRunSpringboot.sh的shell文件

#!/bin/bash
# 123456 是root用户密码
echo "123456" |sudo -S echo ""
# JAR包名
JAR_NAME=dcmmanagesystem-v1.jar
# 源代码存储路径
SRC_PATH=/home/tang/dcm4cheSystem
# JAR包部署路径
RUN_PATH=/home/tang/dcm4cheJar
# 日志文件名
LOGFILE=dcm4che.log
cd $SRC_PATH/
echo "=========pwd========== " |pwd
# 拉取最新代码
git pull
# 编译打包
mvn clean 
mvn package
echo "==================mvn package successfully=============="
# 拷贝jar包到部署路径中
cp $SRC_PATH/target/$JAR_NAME  $RUN_PATH/
# 杀死上个jar包运行的进程

pid=`ps -ef|grep $JAR_NAME |grep -v grep|awk '{print $2}'`
echo $pid
echo "==================kill -9 pid==========================="
# 逐个杀死进程
for id in $pid
do 
kill -9 $id
echo "kill $id"
done
echo "====================kill end============================"
# 后台启动
cd $RUN_PATH/
sudo nohup java -jar $JAR_NAME >$JAR_NAME.log&
echo "=======sudo nohup java -jar $JAR_NAME >$JAR_NAME.log&======="

echo "=============SpringBoot jar is running "|ps -ef|grep $JAR_NAME

在这里插入图片描述在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值