springboot打包不同环境配置以及shell脚本部署的方法

SpringBoot打包不同环境配置以及Shell脚本部署的方法

在实际的应用中,我们需要针对不同的环境(如开发、测试、生产)进行配置,同时我们也需要使用Shell脚本一键部署以简化部署操作。

下面就以一个基础的Spring Boot应用为例,介绍一下如何实现不同环境配置以及Shell脚本部署。

1.不同环境配置

1.1 环境配置文件

首先,在resources目录下创建不同环境的配置文件,如application-dev.yml、application-test.yml和application-prod.yml。在这些配置文件中,我们可以将相同的配置项进行抽离并放入application.yml中,然后在不同的配置文件中进行覆盖即可。

示例如下:

application.yml

server:
  port: 8080

logging:
  level:
    root: info

application-dev.yml

spring:
  profiles:
    active: dev

logging:
  level:
    root: debug

application-test.yml

spring:
  profiles:
    active: test

logging:
  level:
    root: info

application-prod.yml

spring:
  profiles:
    active: prod

logging:
  level:
    root: error

1.2 读取环境变量

在应用启动时,Spring Boot会根据application-{profile}.yml的格式读取配置文件,并根据spring.profiles.active属性的值加载不同的配置。

因此,在启动应用时,我们需要设置spring.profiles.active参数,示例代码如下:

java -jar app.jar --spring.profiles.active=dev

这样,在运行时,Spring Boot会主动查找激活的配置文件application-dev.yml,并覆盖application.yml中的配置。

2.Shell脚本部署

2.1 编写脚本

在项目根目录下,创建deploy.sh脚本文件,用于实现自动化部署。

示例代码如下:

#!/bin/bash

# 定义相关参数
APP_NAME="myapp"
JVM_OPTS="-Xmx1024m -Xms512m"
JAVA_OPTS="-Djava.security.egd=file:/dev/./urandom"

# 打包程序
mvn clean package -DskipTests

# 停止应用
PID=$(ps ax | grep ${APP_NAME} | grep java | grep -v grep | awk '{print $1}')
if [ -n "$PID" ]; then
  echo "Stoping ${APP_NAME} ..."
  kill -9 $PID
fi

# 启动应用
nohup java -jar ${APP_NAME}.jar ${JVM_OPTS} ${JAVA_OPTS} > /dev/null 2>&1 &

echo "Deploy ${APP_NAME} successfully."

该脚本文件中,首先定义了一些参数,如应用程序名、JVM参数、Java参数等。

然后执行了mvn clean package -DskipTests,对应用程序进行打包。接着根据APP_NAME查找应用进程,如果存在,则先停止进程。最后使用启动jar包的命令来重启应用程序。

2.2 调用脚本

运行deploy.sh脚本文件时,需要给与可执行权限,如下命令:

chmod +x deploy.sh

然后,执行deploy.sh,即可完成自动化部署。

./deploy.sh

3.总结

通过以上的步骤,我们实现了基于Spring Boot实现不同环境配置以及shell脚本部署的方法。这些方法可以使我们开发、测试、生产不同阶段的部署变得更加简单高效。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:springboot打包不同环境配置以及shell脚本部署的方法 - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • Centos8.2云服务器环境安装Tomcat8.5的详细教程

    下面是CentOS 8.2云服务器环境安装Tomcat 8.5的详细步骤: 1. 安装Java JDK Tomcat需要使用Java运行环境,因此需要先安装Java JDK(Java Development Kit)。 1.1. 更新yum源 在安装Java JDK之前,需要先更新yum源,以确保可以正常下载所需软件包。 sudo yum update 1.…

    Java 2023年5月19日
    00
  • SpringBoot打印启动时异常堆栈信息详解

    讲解SpringBoot打印启动时异常堆栈信息的完整攻略,具体步骤如下: 1. 开启Debug模式 在SpringBoot启动类中,添加以下代码: @SpringBootApplication public class DemoApplication { public static void main(String[] args) { // 开启Debug模…

    Java 2023年5月27日
    00
  • Spring Boot构建框架详解

    SpringBoot构建框架详解 什么是SpringBoot SpringBoot是由Pivotal团队在2013年开源的一款基于Java的框架,它旨在让开发者更加便捷地创建Spring应用。SpringBoot具备自动配置、快速开发、无代码生成等特点,同时它也提供了包括Web、数据、消息等在内的一系列开发场景。 如何使用SpringBoot 1. 环境要求…

    Java 2023年5月15日
    00
  • SpringSecurity实现前后端分离的示例详解

    为了讲解本文的主题,我们需要先了解以下几个概念: 前后端分离:前后端分离是指将前端和后端业务逻辑分开,前端主要负责展示数据和交互逻辑,后端主要负责提供API接口和业务逻辑。 Spring Security:Spring Security是基于Spring框架的安全框架,主要提供身份认证、授权、攻击防护等安全功能。 Token认证:Token认证是一种基于To…

    Java 2023年5月20日
    00
  • 一文探索Java文件读写更高效方式

    针对Java文件读写更高效方式的攻略,我可以提供以下内容: 1. 使用NIO NIO(New I/O),即为非阻塞 IO。相比于传统的 IO,它可以提供更高效的文件读写方式。其主要的类库为java.nio。使用NIO的关键是Buffer和Channel两个概念。其中Buffer为缓冲区,用来读写数据;Channel则代表数据源,如文件或网络连接,我们从Cha…

    Java 2023年5月20日
    00
  • JSP servlet实现文件上传下载和删除

    下面是详细讲解”JSP Servlet实现文件上传下载和删除”的完整攻略。 一、实现文件上传 1.1 准备工作 在进行文件上传之前,我们需要先准备好上传文件的HTML表单和对应的服务器端处理代码。HTML表单中需要包含文件上传的相关信息。 通常,我们使用enctype=”multipart/form-data”来指定表单使用二进制传输数据,使用type=”f…

    Java 2023年6月15日
    00
  • Java集合之Set接口及其实现类精解

    Java集合之Set接口及其实现类精解 Set接口是Java集合框架中的一种无序集合,它只能包含不重复的元素。本文将会详细讲解Set接口及其实现类的特点和使用方法。 Set接口 Set接口是Java集合框架中的一个接口,它继承了Collection接口,表示一个不允许重复元素的无序集合。Set接口中定义了以下常用的方法: add(E e):添加指定元素到集合…

    Java 2023年5月18日
    00
  • java容器详细解析

    Java容器详细解析 在Java中,容器是一种可以存储和检索对象的数据结构。Java提供了各种类型的容器,包括List、Set、Map等等。本文将通过详细解析Java容器,让您了解Java中各种容器类型的使用方法和优缺点。 List容器 List容器是一种有序的容器,允许元素重复。在Java中,常用的List容器有ArrayList和LinkedList。 …

    Java 2023年5月26日
    00
合作推广
合作推广
分享本页
返回顶部