maven如何替换application.yml中的文本@env@?
How does maven replace text @env@ in application.yml?
pom.xml 中定义了一些配置文件。
<profile>
<id>test</id>
<properties>
<env>test</env>
</properties>
</profile>
spring.profiles.active: @env@
在 application.yml 和 bootstrap.yml 中定义。
当我 运行 mvn install -P test
时,application.yml 中的文本 @env@
将被 test
替换。
它是如何工作的?
为什么它对 bootstrap.xml 不起作用?
它适用于 application.yml
,因为您显然正在使用 Spring Boot Starter Parent。在此处查看 POM:https://github.com/spring-projects/spring-boot/blob/master/spring-boot-project/spring-boot-starters/spring-boot-starter-parent/pom.xml
神奇的部分是该父 POM 中的 <resources>
配置。您会看到应用程序配置文件是通过过滤显式复制的。这就是 maven-resources-plugin
解析这些文件中的占位符的原因。
如果您想添加更多文件以像这样处理,您可以将您自己的 <resources>
部分添加到您的 POM 并通过更多文件模式扩展它。
pom.xml 中定义了一些配置文件。
<profile>
<id>test</id>
<properties>
<env>test</env>
</properties>
</profile>
spring.profiles.active: @env@
在 application.yml 和 bootstrap.yml 中定义。
当我 运行 mvn install -P test
时,application.yml 中的文本 @env@
将被 test
替换。
它是如何工作的?
为什么它对 bootstrap.xml 不起作用?
它适用于 application.yml
,因为您显然正在使用 Spring Boot Starter Parent。在此处查看 POM:https://github.com/spring-projects/spring-boot/blob/master/spring-boot-project/spring-boot-starters/spring-boot-starter-parent/pom.xml
神奇的部分是该父 POM 中的 <resources>
配置。您会看到应用程序配置文件是通过过滤显式复制的。这就是 maven-resources-plugin
解析这些文件中的占位符的原因。
如果您想添加更多文件以像这样处理,您可以将您自己的 <resources>
部分添加到您的 POM 并通过更多文件模式扩展它。