基于maven的springboot多环境yml配置文件切换与隔离 - Go语言中文社区

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


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

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

一、增加多个配置文件

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

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

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

1.2 修改applicaion.yml

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

spring:
  profiles:
    active: @profileActive@

二、修改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多了Profiles,Profiles下含有dev与release选框,这便是2.2中我们所配置的profiles。我们点击dev或release,IDEA便会自动替换当前所激活的配置文件,完成配置文件的替换,如上图所示,我们点击dev,并在本地运行springboot,我们可以看到springboot会依照当前dev配置运行项目,至此我们完成了环境配置切换的步骤。

3.2 项目打包

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

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

jar包总体目录结构:

jar包内配置文件详情

若出现以下报错

Caused by: org.yaml.snakeyaml.scanner.ScannerException: while scanning for the next token
found character '@' that cannot start any token. (Do not use @ for indentation)
 in 'reader', line 3, column 13:
        active: @profileActive@

则先运行mvn clean 再打包便可

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

 

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/bbcckkl/article/details/89882074
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-03-07 23:14:05
  • 阅读 ( 1952 )
  • 分类:Go环境配置

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢