我正在尝试使用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活动配置文件?
Maven配置文件和Spring配置文件是完全不同的两件事。你的pom.xml定义spring.profiles.active了在构建过程中可用但在运行时不可用的变量。这就是为什么仅激活默认配置文件的原因。
spring.profiles.active
如何将Maven配置文件与Spring绑定?
你需要将build变量传递给你的应用程序,以便在启动时可以使用它。
在你的中定义一个占位符application.properties:
application.properties
spring.profiles.active=@spring.profiles.active@
该@spring.profiles.active@变量必须与Maven配置文件中声明的属性匹配。
@spring.profiles.active@
在你的pom.xml中启用资源过滤:
<build> <resources> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> </resource> </resources> … </build>
执行构建后src/main/resources,Maven将处理目录中的所有文件,并且其中的占位符application.properties将替换为你在Maven概要文件中定义的变量。
src/main/resources