maven 如何替换 application.yml 中的文本@env@?



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

它是如何工作的?

为什么它不适用于引导.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 中,并通过更多文件模式对其进行扩展。

最新更新