Linux--部署SpringBoot应用

打包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脚本,拉取代码,运行应用。

posted @   Li-Xiaolei  阅读(942)  评论(1编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示