使用Profiles标签实现多环境切换

Posted zhouyon

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Profiles标签实现多环境切换相关的知识,希望对你有一定的参考价值。

在正常的开发使用中,在不同的情况下使用的环境肯定是不相同的,所以需要使用到多环境切换,Maven的profiles标签就可以实现这一功能

一.项目结构

技术图片

springboot启动时是如何加载配置文件application.yml文件

 https://blog.csdn.net/chengkui1990/article/details/79866499

 二.在pom.xml定义环境的profile

<!-- Maven控制Spring Profile -->
    <profiles>
        <!--默认开启dev-->
        <profile>
            <id>dev</id>
            <activation>
                <!--这个字段表示默认激活-->
                <activeByDefault>true</activeByDefault>
            </activation>
            <properties>
                <profileActive>dev</profileActive>
            </properties>
            <build>
                <!-- 产生的构件的文件名,默认值是${artifactId}-${version}-->
                <finalName>${project.artifactId}-${project.version}</finalName>
            </build>
        </profile>
        <!--测试配置-->
        <profile>
            <id>test</id>

            <properties>
                <profileActive>test</profileActive>
            </properties>
            <build>
                <!-- 产生的构件的文件名-->
                <finalName>${project.artifactId}-${project.version}</finalName>
            </build>
        </profile>
        <!--生产配置-->
        <profile>
            <id>prod</id>
            <properties>
                <profileActive>prod</profileActive>
            </properties>
            <build>
                <!-- 产生的构件的文件名-->
                <finalName>${project.artifactId}</finalName>
            </build>
        </profile>
    </profiles>

    <build>
        <!-- profile对资源的操作 -->
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <!--打包时先排除掉所有yml-->
                <excludes>
                    <exclude>application*.yml</exclude>
                </excludes>
            </resource>
            <resource>
                <!--这里是关键! 根据不同的环境,把对应文件夹里的配置文件打包-->
                <directory>src/main/resources</directory>
                <!-- 是否替换@xx@表示的maven properties属性值 -->
                <filtering>true</filtering>
                <!--如果有其他定义通用文件,需要包含进来-->
                <includes>
                    <include>application.yml</include>
                    <include>application-${profileActive}.yml</include>
                </includes>
            </resource>
        </resources>
    </build>

三.将application.yml的active参数

# SPRING PROFILES
spring:
  profiles:
    active: ‘@profileActive@‘

技术图片

 

 技术图片

 

以上是关于使用Profiles标签实现多环境切换的主要内容,如果未能解决你的问题,请参考以下文章

maven中profiles使用详解

maven中profiles使用详解

maven中profiles使用详解

maven中profiles使用详解

springboot 多环境配置和切换

Maven + Spring 进行多环境自动切换功能