一.前言
之前在linux上运行java项目,都是在本地打jar包,然后使用xftp将jar包上传至linux,nohup java -jar xxx.jar 后台运行jar包。
二.痛点
这样如果更新不是很频繁勉强可以使用,如果频繁改动、更新则将会是噩梦,基于这种情况,我决定使用自动化脚本
三.编写自动化脚本
1.前期准备:linux上安装maven(gradle)、git;
2.在linux上新建project文件夹,用于存放项目源代码
3.使用 vi start.sh 创建脚本,然后切换为输入模式,在其中输入如下信息:
#!/bin/sh
echo =================================
echo 自动化部署脚本启动
echo =================================
echo 停止原来运行中的工程
#克隆远程仓库项目名字
date=`date +%Y-%m-%d`
#我的jar包
APP_NAME=my.jar
#根据APP_NAME变量杀进程
#stop service 停止jar包
pid=`ps -ef | grep $APP_NAME| grep -v "tail" | grep -v "grep" | awk '{print $2}'`
if [ "$pid" ];then
echo "pid is $pid"
kill -9 "$pid"
else
echo "$APP_NAME server already stopped!"
fi
echo stop sucess
echo =================================
echo 准备从Git仓库拉取最新代码
cd /ssd_disk/project/myProject/
echo =================================
git pull
echo 代码拉取完成
echo =================================
echo 开始打包
output=`mvn clean package -Dmaven.test.skip=true`#maven打包
cd target
echo 打包完成
echo 启动项目
#注意,改为自己的.jar包名
nohup java -Xms1g -Xmx2g -jar $APP_NAME &>/ssd_disk/project/myProject/logs/$date-myProject.log &
echo =================================
echo 项目启动完成
echo =================================