无法让Springboot应用程序运行/构建特定配置文件

时间:2020-08-27 03:40:17

标签: spring-boot maven-3 spring-profiles

我正在使用Maven作为构建工具。 对于SpringBoot中的配置文件管理,我正在使用yml文件。

对于我的SpringBoot应用程序,我设置了以下application-*。yml文件:

application.yml
application-local.yml
application-foobar.yml

我对应的pom.xml配置文件配置:

<profiles>
    <profile>
        <id>local</id>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
        <properties>
            <activatedProperties>local</activatedProperties>
        </properties>
    </profile>
    <profile>
        <id>foobar</id>
        <activation>
            <activeByDefault>false</activeByDefault>
        </activation>
        <properties>
            <activatedProperties>foobar</activatedProperties>
        </properties>
    </profile>
</profiles>

每当我尝试通过Maven打包或运行我的应用程序时:

> mvn package -P <any configured profile>

> mvn spring-boot:run -P <any configured profile>

该应用程序可以运行,但是只能回退到默认配置文件(application.yml)。 每次尝试在任何配置的配置文件下运行应用程序时,我都会得到以下日志条目:

: No active profile set, falling back to default profiles: default

我似乎在互联网上找不到有关此问题的任何明确信息。 任何帮助将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:0)

Maven构建配置文件和Spring bean配置文件是两个完全独立的概念,碰巧使用相同的名称,但彼此之间不交互。

您使用<profiles></profiles>显示的XML配置了Maven build profiles,但对Spring bean配置文件没有任何影响。

对于Spring Framework documentation on activating a profileSpring Boot documentation on passing arguments when running an application,在使用Maven通过以下命令运行应用程序时,可以选择活动的Spring bean配置文件:

> mvn spring-boot:run -Dspring-boot.run.jvmArguments="-Dspring.profiles.active=local"