使用Alibaba Cloud Toolkit一键部署spring-boot项目并重启服务

需求:项目每次发布都要重新使用maven打包,上传到服务器,然后查看项目的pid,kill掉,再重新发布,及其繁琐

解决步骤:

  1. 在idea的setting中plugins搜索Alibaba Cloud Toolkit 
  2. 使用Alibaba Cloud Toolkit一键部署spring-boot项目并重启服务_第1张图片
  3. 此处可以连接到服务器
  4. 点击上面的Tools
  5. 使用Alibaba Cloud Toolkit一键部署spring-boot项目并重启服务_第2张图片
  6. 填写项目所在服务器的文件夹
  7. 使用Alibaba Cloud Toolkit一键部署spring-boot项目并重启服务_第3张图片
  8. 添加执行的命令
  9. 使用Alibaba Cloud Toolkit一键部署spring-boot项目并重启服务_第4张图片
  10. 输入命令使用Alibaba Cloud Toolkit一键部署spring-boot项目并重启服务_第5张图片
  11. 切到Advanced
  12. 为了能够实现自动重启服务功能,在此处添加了自动执行的脚本(脚本的路径和jar的名字根据自己服务器地址来修改)
  13. 使用Alibaba Cloud Toolkit一键部署spring-boot项目并重启服务_第6张图片
  14. 点击Apply然后run,会自动打包,并执行写的脚本命令
  15. sh文件如:
    #!/bin/bash
    #这里可替换为你自己的执行程序,其他代码无需更改
    APP_NAME=$2
      
    #使用说明,用来提示输入参数
    usage() {
     echo "Usage: sh 脚本名.sh [start|stop|restart|status]"
     exit 1
    }
      
    #检查程序是否在运行
    is_exist(){
     pid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}' `
     #如果不存在返回1,存在返回0 
     if [ -z "${pid}" ]; then
     return 1
     else
     return 0
     fi
    }
      
    #启动方法
    start(){
     is_exist
     if [ $? -eq "0" ]; then
     echo "${APP_NAME} is already running. pid=${pid} ."
     else
     nohup java -jar /mnt/ssd1/project/websocket/$APP_NAME > /mnt/ssd1/project/websocket/websocketserverlog.file 2>&1 &
     echo "${APP_NAME} start success"
     fi
    }
      
    #停止方法
    stop(){
     is_exist
     if [ $? -eq "0" ]; then
     kill -9 $pid
     else
     echo "${APP_NAME} is not running"
     fi
    }
      
    #输出运行状态
    status(){
     is_exist
     if [ $? -eq "0" ]; then
     echo "${APP_NAME} is running. Pid is ${pid}"
     else
     echo "${APP_NAME} is NOT running."
     fi
    }
      
    #重启
    restart(){
     stop
     start
    }
      
    #根据输入参数,选择执行对应方法,不输入则执行使用说明
    case "$1" in
     "start")
     start
     ;;
     "stop")
     stop
     ;;
     "status")
     status
     ;;
     "restart")
     restart
     ;;
     *)
     usage
     ;;
    esac
    

    注释: ===== 该文件直接粘贴在运行的时候会因为'^M'报错,可以在notepad++中使用以下方法进行转换.使用Alibaba Cloud Toolkit一键部署spring-boot项目并重启服务_第7张图片

  16. 使用Alibaba Cloud Toolkit一键部署spring-boot项目并重启服务_第8张图片

  17. 控制台打印,则代表成功

你可能感兴趣的:(java)