zoukankan      html  css  js  c++  java
  • 在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 就可以完成代码的重新拉取、编译、启动操作
  • 相关阅读:
    react 采坑记录
    理解JS 模块化
    MongoDB使用教程
    scss
    gulp 使用教程
    node.js 简单入门
    jQuery
    jQuery
    php+mysql+bootstrap 实现成绩管理系统
    SVN的commit功能用bat实现
  • 原文地址:https://www.cnblogs.com/daleyzou/p/springbootAutoDeploy.html
Copyright © 2011-2022 走看看