maven如何在application.yml中替换text @ env @?

时间:2018-05-12 11:30:24

标签: maven spring-boot spring-cloud

pom.xml中定义了一些配置文件。

<profile>
  <id>test</id>
  <properties>
    <env>test</env>
  </properties>
</profile>
application.yml和bootstrap.yml中定义的

spring.profiles.active: @env@。 当我运行mvn install -P test时,application.yml中的文本@env@将替换为test

它是如何运作的?

为什么它对bootstrap.xml不起作用?

1 个答案:

答案 0 :(得分:2)

适用于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中,并通过更多文件模式进行扩展。