Java教程

Linux--部署SpringBoot应用

本文主要是介绍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脚本,拉取代码,运行应用。

这篇关于Linux--部署SpringBoot应用的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!