Linux 部署 springboot jar 包

因为 springboot 有内置 tomcat 容器,所以我们在 linux 部署 springboot 项目的时候可以不安装 tomcat ,直接用 jar 包进行部署。

一、springboot 相关配置

1、配置文件

springboot 项目中,有如下三个配置文件,一个主配置文件,两个不同环境的配置文件
在这里插入图片描述

application.yml 主配置文件内容

spring:
  profiles:
    active: prod

2、将项目打成 jar 包

将 springboot 项目打成 jar 包

如果 pom 文件中没有设置这个打包方式,默认会打成 jar 包

<packaging>war</packaging>

也可以直接将打包方式设置成 jar

<packaging>jar</packaging>

3、将 jar 包通过工具 xftp 上传到服务器

二、 Linux 部署 jar

首先 Linux 上需要配置好相关的 java 环境,也就是 jdk,不会配置的可以参考下面这篇文章

Linux 配置 java jdk 环境

1、部署 springboot jar 包脚本

新建 restart.sh 文件,文件内容如下

# 检查端口号为 8080 的 tomcat 进程 id
pid=$(netstat -nlp | grep :8080 | awk '{print $7}' | awk -F"/" '{ print $1 }')
# 如果 8080 在运行,存在进程号
if [ -n "$pid" ];then
   # 杀死 8080 存在的进程号
   kill -9 $pid
   # 运行部署的 jar 包
   nohup java -jar springboot-demo.jar --spring.profiles.active=prod &
# 如果 8080 未运行,直接启动
else
   # 运行部署的 jar 包
   nohup java -jar springboot-demo.jar --spring.profiles.active=prod &
fi

相关命令代码解释

if [ -n “$pid” ]:当 pid 的长度大于0时为真(串非空),语法格式如下

if [ -n "$pid" ];then
  # 如果 pid 不为空
else
 # 如果 pid 为空
fi

nohup:用于在系统后台不挂断地运行命令,退出终端不会影响程序的运行(也就是说让项目保持后台运行)。
nohup 命令,在默认情况下(非重定向时),会输出一个名叫 nohup.out 的文件到当前目录下,如果当前目录的 nohup.out 文件不可写,输出重定向到 $HOME/nohup.out 文件中。

java -jar:运行部署 jar 的命令

springboot-demo.jar:项目打包后的 jar 包名称

–spring.profiles.active=prod:选择以 prod 配置文件进行启动

&:表示任务在后台执行

2、运行 restart.sh 脚本

restart.sh 文件建立好之后,我们需要执行这个文件才能让我们的 jar 包运行

在 restart.sh 脚本所在目录下,使用如下命令执行脚本

./restart.sh 

刚创建好的脚本一般是无法执行的,会提示:“权限不够”,那么怎么解决呢?

举个栗子,比如这个新建好的 test 脚本,此时是无法执行的
在这里插入图片描述

使用如下命令授权

chmod -R 777 ./test.sh

授权之后,这个文件会有明显的变化,颜色变成了绿色,表示是一个可执行文件
在这里插入图片描述
我们就可以在当前目录下,直接使用 ./test.sh 命令执行了
test 里面的内容是输出这个信息
在这里插入图片描述
执行之后
在这里插入图片描述

不扯远了,同理,如果我们创建好的部署 jar 的脚本文件不能执行,使用授权命令授权之后再执行就可以了。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值