在idea中编写自动拉取、编译、启动springboot项目的shell脚本

idea 开发环境搭建

idea中安装shell开发插件

服务器具备的条件

  1. 已经安装 lsof(用于检查端口占用)
  2. 已安装 git
  3. 安装 maven
  4. 有 java 环境

背景

代码提交到仓库后,需要在服务器上重新部署 springboot 的代码,每次自己打jar包上传到服务器步骤太繁琐,考虑把要使用的命令放在脚本中

初始化拉取指定分支的代码

blog_int.sh

#!/usr/bin/env bash

cd /data/code/
git clone -b V3.0.0 git@github.com:daleyzou/blog.git

部署的代码

deplog.sh

#!/usr/bin/env bash

cd /data/code/blog
echo '自动部署Springboot项目脚本...'
echo '1. 拉取代码...'
git pull
echo '2. 检查8000端口是否被占用...'
pid_blog=`lsof -i :8000|grep -v "PID"|awk '{print $2}'`
if [ "$pid_blog" != "" ];
then
    echo '8000端口被占用'
    echo $pid_blog
    kill -9 "$pid_blog"
    echo $pid_blog '进程已被杀死'
else
    echo "端口未被占用"
fi
echo '3. 删除已有jar包...'
if [ ! -f "/data/jarDir/blog-1.0.1-SNAPSHOT.jar" ];then
echo "文件不存在"
else
rm -f /data/jarDir/blog-1.0.1-SNAPSHOT.jar
fi
echo '4. 清理原有项目...'
/data/usr/local/apache-maven/bin/mvn clean
echo '5. 打包...'
/data/usr/local/apache-maven/bin/mvn clean package -Dmaven.test.skip=true
echo '6. 将打包后的 jar 文件移动到指定目录...'
mv /data/code/blog/target/blog-1.0.1-SNAPSHOT.jar /data/jarDir
echo '7. 后台运行jar包...'
nohup java -jar /data/jarDir/blog-1.0.1-SNAPSHOT.jar > /data/jarDir/log.out 2>&1 &
以后当代码提交到仓库后,直接执行 deploy.sh 就可以完成代码的重新拉取、编译、启动操作
posted @ 2019-11-26 23:35  DaleyZou  阅读(858)  评论(0编辑  收藏  举报