我正在尝试使用 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 活动配置文件?
任何帮助高度赞赏。
原文由 Michał Szewczyk 发布,翻译遵循 CC BY-SA 4.0 许可协议
Maven 配置文件和 Spring 配置文件是两个完全不同的东西。您的 pom.xml 定义了
spring.profiles.active
变量,该变量在构建过程中可用,但在运行时不可用。这就是为什么只激活默认配置文件的原因。如何将 Maven 配置文件与 Spring 绑定?
您需要将构建变量传递给您的应用程序,以便它在启动时可用。
application.properties
中定义一个占位符:@spring.profiles.active@
变量必须与 Maven 配置文件中声明的属性匹配。执行构建时,
src/main/resources
目录中的所有文件都将由 Maven 处理,并且application.properties
中的占位符将替换为您在 Maven 配置文件中定义的变量。有关更多详细信息,您可以 转到我描述此用例的帖子。