一尘不染

通过Maven在SpringBoot中配置活动配置文件

spring

我正在尝试使用Maven 3
在Spring Boot应用程序中设置活动配置文件。在我的pom.xml中,将默认的活动配置文件和属性spring.profiles.active设置 为development:

<profiles>
    <profile>
        <id>development</id>
        <properties>
            <spring.profiles.active>development</spring.profiles.active>
        </properties>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
    </profile>
</profiles>

但是每次我运行应用程序时,都会在日志中收到以下消息:

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

并且将SpringBoot配置文件设置为默认值(读取application.properties而不是application-development.properties)

我还应该怎么做才能使用Maven配置文件设置SpringBoot活动配置文件?


阅读 948

收藏
2020-04-17

共1个答案

一尘不染

Maven配置文件和Spring配置文件是完全不同的两件事。你的pom.xml定义spring.profiles.active了在构建过程中可用但在运行时不可用的变量。这就是为什么仅激活默认配置文件的原因。

如何将Maven配置文件与Spring绑定?

你需要将build变量传递给你的应用程序,以便在启动时可以使用它。

在你的中定义一个占位符application.properties

spring.profiles.active=@spring.profiles.active@

@spring.profiles.active@变量必须与Maven配置文件中声明的属性匹配。

在你的pom.xml中启用资源过滤:

<build>
    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <filtering>true</filtering>
        </resource>
    </resources>
    …
</build>

执行构建后src/main/resources,Maven将处理目录中的所有文件,并且其中的占位符application.properties将替换为你在Maven概要文件中定义的变量。

2020-04-17