maven | 基于maven的springboot多环境yml配置文件切换与隔离

时间:2024-03-29 14:28:16

在实际开发过程中,我们经常需要面对开发环境、测试环境与生产环境进行yml配置文件的切换,使用注释切换与手工替换的方式效率较低;且不同环境下的配置需求也经常不一样,这样会造成少改、漏改和错改的问题。为解决这个问题,我们可以借助maven的profile进行多环境的配置文件切换,本文将介绍基于maven的springboot多环境yml配置文件切换的配置步骤。

注:开发环境-dev,测试环境-test,生产环境-release

一、增加多个配置文件

1.1 创建环境所对应的配置文件

  将原配置文件 application.yml 修改为 application-dev.yml并复制出一份 application-release.yml,如下图所示

maven | 基于maven的springboot多环境yml配置文件切换与隔离

其中,将dev的配置文件修改为开发环境所对应的配置,release配置文件修改为生产环境所对应配置,若需要增加测试环境-test则自行添加多一份yml。

1.2 修改applicaion.yml

将原来application.yml的文件内容删除,并修改为以下配置

spring:
  profiles:
    active: @[email protected]

二、修改maven profiles

2.1 <build>添加resource

进入项目的pom.xml,在<build>标签下添加以下配置

<resources>
    <resource>
        <directory>src/main/resources</directory>
        <!-- 处理文件时替换文件中的变量 -->
        <filtering>true</filtering>
        <excludes>
            <!-- 打包时排除文件,可自行添加test.yml -->
            <exclude>application.yml</exclude>
            <exclude>application-dev.yml</exclude>
            <exclude>application-prod.yml</exclude>
        </excludes>
    </resource>
    <resource>
        <directory>src/main/resources</directory>
        <filtering>true</filtering>
        <!-- 打包时所包含得文件 -->
        <includes>
            <include>application.yml</include>
            <include>application-${profileActive}.yml</include>
        </includes>
    </resource>
</resources>

2.2 在<project>标签下添加profiles配置

继续编辑pom.xml,在<project>标签下添加以下配置

<profiles>
    <!-- dev开发环境配置,release为生产环境配置 -->
    <profile>
        <id>dev</id>
        <properties>
            <profileActive>dev</profileActive>
        </properties>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
    </profile>
    <profile>
        <id>release</id>
        <properties>
            <profileActive>release</profileActive>
        </properties>
    </profile>
</profiles>

完成以上两步,便完成了springboot下的多环境配置。

三、环境配置切换与打包

3.1 环境配置切换

进入IDEA,点击最右边的maven管理选项卡

maven | 基于maven的springboot多环境yml配置文件切换与隔离

此时可以看到项目maven多了Profiles,Profiles下含有dev与release选框,这便是2.2中我们所配置的profiles。我们点击dev或release,IDEA便会自动替换当前所**的配置文件,完成配置文件的替换,如上图所示,我们点击dev,并在本地运行springboot,我们可以看到springboot会依照当前dev配置运行项目,至此我们完成了环境配置切换的步骤。

3.2 项目打包

进入maven project选项,选择需要打包的环境(如release),点击my-project/Liftcycle ->package

maven | 基于maven的springboot多环境yml配置文件切换与隔离

如下图所示便打包成功,我们进入红线所示的地址,检查jar包配置文件是否有问题。

maven | 基于maven的springboot多环境yml配置文件切换与隔离

jar包总体目录结构:

maven | 基于maven的springboot多环境yml配置文件切换与隔离

jar包内配置文件详情

maven | 基于maven的springboot多环境yml配置文件切换与隔离

至此,我们完成了基于maven的springboot多环境yml配置文件切换与隔离。