由maven profile控制spring profile

本文转载自:https://www.datawisher.cn/

使用spring profile

一般情况,我们会在项目中建多个application.yml。例如application.yml,application-dev.yml,application-test等。通过在application.yml文件中配置profile使用哪个,不设置的话会默认使用默认配置。例如:

spring:
  profiles:
    active: dev

上面这个配置会使得application-dev.yml生效。

当然,也可以将多个配置文件都写在一个application.yml中,只需要用---隔开。

那么如何使用maven的profile来控制spring的profile呢?

使用maven的profile来控制spring的profile

  1. 在项目主pom文件中增加profile配置

    <!-- Maven控制Spring Profile -->
    <profiles>
        <!--开发配置-->
        <profile>
            <id>dev</id>
            <!-- 默认激活dev -->
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <properties>
                <profileActive>dev</profileActive>
            </properties>
            <build>
                <!-- 产生的构件的文件名,默认值是${artifactId}-${version}-->
                <finalName>${project.artifactId}-dev-${project.version}</finalName>
            </build>
        </profile>
        <!--测试配置-->
        <profile>
            <id>test</id>
            <properties>
                <profileActive>test</profileActive>
            </properties>
            <build>
                <!-- 产生的构件的文件名-->
                <finalName>${project.artifactId}-test-${project.version}</finalName>
            </build>
        </profile>
        <!--生产配置-->
        <profile>
            <id>prod</id>
            <properties>
                <profileActive>prod</profileActive>
            </properties>
            <build>
                <!-- 产生的构件的文件名-->
                <finalName>${project.artifactId}-${project.version}</finalName>
            </build>
        </profile>
    </profiles>
    
    <build>
        <!-- profile对资源的操作 -->
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <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>
    
  1. application.yml 配置

    spring:
      profiles:
        active: @profileActive@
    
  2. 如果使用IDEA来开发的话,会在maven窗口栏看到多出了一个Profiles选项

    image
  3. 选中不同的profile进行快速切换,然后启动应用,非常方便。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容