软件安装
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
来源:oschina
链接:https://my.oschina.net/u/4957087/blog/4918358