在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 [email protected]: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 就可以完成代碼的重新拉取、編譯、啓動操作
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章