使用Alibaba Cloud Toolkit 发布SpringBoot到云服务器

软件安装

1.打开File->Plugins->Marketplace

2.搜索Alibaba Cloud Toolkit

3.安装成功后重启IDEA

我们可以看到Tools有Alibaba Cloud 选项了,而我们需要用的是Deploy to Host…这个功能

配置服务器

点击Deploy to Host,如果你之前没有配置过服务器SSH信息,这里需要先进行配置

配置发布信息

因为服务器上没有安装Maven,我这里利用IDEA打包后,将包上传到服务器指定路径

maven打包指令

clean package -Dmaven.test.skip=true

jar包备份(这里我们备份jar包名加上时间戳)

mv /usr/local/yee-admin/yee-admin.jar /usr/local/yee-admin/yee-admin-`date +%Y%m%d-%H%M%S`.jar

查看日志指令

tail -200f /data/logs/yee-admin/info.log

执行发布

可以看到首先执行Maven打包

打包成功之后,上传jar到服务器

上传成功之后执行了service.sh脚本,我们可以看到远程服务器上的启动日志

我们登录服务器,服务正常启动,同时原先的jar包也已经备份好了

服务启动脚本service.sh,根据实际情况修改

#!/usr/bin/env bash

JAR_PATH=`pwd`;

#停止应用检测间隔时间(秒)

SLEEP_TIME=5;

#每个项目路径下xxxxx.jar的名称

JAR_NAME="yee-admin.jar";

#当前这个应用启动端口号

#PORT=8801;

#-Dserver.port=$PORT

#系统中java和jps命令路径

JAVA="/usr/java/default/bin/java";

JPS="/usr/java/default/bin/jps";

#if [ "$USER" == "root" ]; then

#    echo "不能使用root用户启动";

#    exit 1;

#fi

function pid(){

    echo `$JPS | grep $JAR_NAME | awk '{print $1}'`;

}

function service_start(){

$JAVA -Xms300M -Xmx300M -Xss512k -XX:PermSize=256M -XX:MaxPermSize=256M \

  -jar "$JAR_PATH/$JAR_NAME" --spring.profiles.active=prod > /dev/null 2>&1 &

}

function service_stop(){

    pid=`pid`;

    if [ -n "$pid" ]; then

        echo "$JAR_NAME is Killing($pid)";

        #通过springboot提供http接口停止应用

        # http_code=`curl -X POST -o /dev/null -s -w %{http_code} 127.0.0.1:$PORT/shutdown`;

        # sleep $SLEEP_TIME;

        pid=`pid`;

        #如果springboot提供http接口没有停止应用,则kill进程id

        if [ -n "$pid" ]; then

            kill $pid;

        fi

        sleep $SLEEP_TIME;

        pid=`pid`;

        #如果kill进程id不成功,则kill -9

        if [ -n "$pid" ]; then

            kill -9 $pid;

        fi

    else

        echo "$JAR_NAME was not Running";

    fi

}

case $1 in

    "start")

        pid=`pid`;

        if [ -n "$pid" ];then

            echo "$JAR_NAME is already Started";

            exit 1;

        fi

        service_start;

        pid=`pid`;

        if [ -z "$pid" ];then

            echo "$JAR_NAME start Fail!";

            exit 1;

        else

            echo "$JAR_NAME is Started!";

            exit 0;

        fi

        ;;

    "stop")

        service_stop;

        pid=`pid`;

        if [ -n "$pid" ];then

            echo "$JAR_NAME stop Fail!";

            exit 1;

        else

            echo "$JAR_NAME is Stoped!";

            exit 0;

        fi

        ;;

    "restart")

        service_stop;

        pid=`pid`;

        if [ -n "$pid" ];then

            echo "$JAR_NAME stop Fail!";

            exit 1;

        else

            echo "$JAR_NAME is Stoped!";

        fi

        service_start;

        pid=`pid`;

        if [ -z "$pid" ];then

            echo "$JAR_NAME start Fail!";

            exit 1;

        else

            echo "$JAR_NAME is Started!";

            exit 0;

        fi

        ;;

esac

如启动报语法错误需set ff = unix

你可能感兴趣的:(使用Alibaba Cloud Toolkit 发布SpringBoot到云服务器)