Spring Boot 项目打包 + Shell 脚本部署详细总结

Spring Boot 项目打包 + Shell 脚本部署详细总结

在现代企业应用开发中,Spring Boot项目的自动化部署是一个非常重要的环节。通过自动化部署,我们可以减少人为操作带来的错误,提高部署效率和可靠性。本文将详细介绍如何将Spring Boot项目打包,并通过Shell脚本进行自动化部署。

一、Spring Boot 项目打包

1.1 准备工作

在开始打包之前,我们需要确保以下条件:

  1. 已经安装了JDK和Maven。
  2. 已经配置好了Spring Boot项目,并且可以通过mvn clean install命令进行构建。

1.2 配置pom.xml

pom.xml文件中添加Spring Boot Maven插件,以便我们可以打包为一个可执行的JAR文件。

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

1.3 打包项目

在项目根目录下运行以下命令,将Spring Boot项目打包为一个可执行的JAR文件:

mvn clean package

执行上述命令后,会在target目录下生成一个*.jar文件,例如myapp-0.0.1-SNAPSHOT.jar

二、编写Shell脚本进行自动化部署

为了实现自动化部署,我们需要编写一个Shell脚本,该脚本将执行以下操作:

  1. 停止正在运行的旧版本应用。
  2. 备份旧版本应用。
  3. 部署新版本应用。
  4. 启动新版本应用。

2.1 创建部署目录

在服务器上创建一个目录,用于存放部署脚本和应用包。例如:

mkdir -p /opt/myapp

将打包生成的JAR文件上传到该目录。

2.2 编写部署脚本

/opt/myapp目录下创建一个名为deploy.sh的Shell脚本,并添加以下内容:

#!/bin/bash

# 部署目录
APP_DIR="/opt/myapp"
# 应用名称
APP_NAME="myapp"
# 应用版本
APP_VERSION="0.0.1-SNAPSHOT"
# JAR 文件名
JAR_NAME="$APP_NAME-$APP_VERSION.jar"
# 备份目录
BACKUP_DIR="$APP_DIR/backup"
# 日志文件
LOG_FILE="$APP_DIR/$APP_NAME.log"

# 创建备份目录
mkdir -p $BACKUP_DIR

# 停止正在运行的旧版本应用
echo "Stopping old application..."
pid=$(ps -ef | grep $JAR_NAME | grep -v grep | awk '{print $2}')
if [ -n "$pid" ]; then
  kill -9 $pid
  echo "Application stopped."
else
  echo "No running application found."
fi

# 备份旧版本应用
echo "Backing up old application..."
if [ -f "$APP_DIR/$JAR_NAME" ]; then
  mv $APP_DIR/$JAR_NAME $BACKUP_DIR/$JAR_NAME.$(date +%Y%m%d%H%M%S)
  echo "Backup completed."
else
  echo "No application to backup."
fi

# 部署新版本应用
echo "Deploying new application..."
cp $APP_DIR/$JAR_NAME .

# 启动新版本应用
echo "Starting new application..."
nohup java -jar $JAR_NAME > $LOG_FILE 2>&1 &

echo "Deployment completed."

2.3 设置脚本权限

确保脚本具有可执行权限:

chmod +x /opt/myapp/deploy.sh

2.4 运行部署脚本

/opt/myapp目录下运行以下命令,执行部署脚本:

./deploy.sh

三、验证部署

在运行部署脚本之后,可以通过以下命令验证应用是否启动成功:

ps -ef | grep myapp-0.0.1-SNAPSHOT.jar

此外,还可以查看日志文件/opt/myapp/myapp.log,确认应用是否正常启动。

四、总结

通过本文的介绍,我们详细讲解了如何将Spring Boot项目打包为可执行的JAR文件,并通过Shell脚本实现自动化部署的过程。通过自动化部署,我们可以大大减少手动操作带来的风险,提高部署效率和可靠性。


  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员小徐同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值