打包SpringBoot项目
部署方式一:手动部署
1、将打包好的jar包上传到Linux服务器中
mkdir -p /opt/java62/app
2、前台启动SpringBoot应用
编译jar包:java -jar helloworld-1.0-SNAPSHOT.jar
使用浏览器进行访问:http://192.168.138.100/hello
缺点:启动SpringBoot项目后会占用一个窗口,一旦窗口关闭,则这个SpringBoot项目对应的进程就会被杀掉,外部就无法访问了
3、后台启动SpringBoot应用
3.1 利用nohup后台启动:nohup java -jar helloworld-1.0-SNAPSHOT.jar &> hello.log &
nohup命令:英文全称 no hang up(不挂起),用于不挂断地运行指定命令,退出终端不会影响程序的运行
语法格式: nohup Command [ Arg … ] [&]
参数说明:
Command:要执行的命令
Arg:一些参数,可以指定输出文件
&:让命令在后台运行
举例:
nohup java -jar boot工程.jar &> hello.log &
上述指令的含义为: 后台运行 java -jar 命令,并将日志输出到hello.log文件
3.2 监控日志:tail -f hello.log
3.3 浏览器访问:http://192.168.138.100/hello
关闭窗口后,因为是后台运行,所以不会停止springboot应用,依旧可以对外提供访问
部署方式二:自动部署
1、Linux克隆项目
进入到要克隆的目录路径下:cd /opt/java62
2、上传shell脚本
上传 shell 脚本到 /opt/java62 目录下(即与项目放在同一个目录中)
shell是linux中的一种开发语言,以sh为后缀名
#!/bin/sh
echo =================================
echo 自动化部署脚本启动
echo =================================
echo 停止原来运行中的工程
# APP_NAME 项目的名称(===========需要修改===========)
APP_NAME=helloworld
tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
echo 'Stop Process...'
kill -15 $tpid
fi
sleep 2
tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
echo 'Kill Process!'
kill -9 $tpid
else
echo 'Stop Success!'
fi
echo 准备从Git仓库拉取最新代码
# /opt/java62/helloworld 仓库名称 地址码云拉项目的文件夹(===========需要修改===========)
cd /opt/java62/helloworld
echo 开始从Git仓库拉取最新代码
git pull
echo 代码拉取完成
echo 开始打包
output=`mvn clean package -Dmaven.test.skip=true`
cd target
echo 启动项目
# jar包的名称(===========需要修改===========)
nohup java -jar helloworld-1.0-SNAPSHOT.jar &> helloworld.log &
echo 项目启动完成
3、授权shell脚本
chmod 777 bootStart.sh
为所有的用户都授权 读写执行 的权限
第一个7:表示授予当前用户对文件权限
第二个7:表示授予当前用户同组内的用户对文件权限
第三个7:表示授予其他用户对文件权限
4、执行shell脚本
./bootStart.sh
自此本地更新代码,上传到git,服务器自动执行shell脚本,拉取代码,运行应用。
标签:grep,SpringBoot,tpid,--,jar,helloworld,echo,Linux From: https://www.cnblogs.com/cxy-lxl/p/16651613.html