1. 程式人生 > >Spring Boot maven profile 替換不成功原因?

Spring Boot maven profile 替換不成功原因?

配置logback.xml替換的時候,發現替換不成功

    <property name="LOG_FILE_HOME" value="${log.root.path}" />

期望裡面的${log.root.path} => /var/logs/discover
但是怎麼樣子都替換不了

後來發現,spring boot 對 maven 的resource外掛進行了單獨的配置

spring-boot-starter-parent-1.4.1.RELEASE.pom

<plugin>
    <groupId>org.apache.maven.plugins</groupId
>
<artifactId>maven-resources-plugin</artifactId> <version>2.6</version> <configuration> <delimiters> <delimiter>${resource.delimiter}</delimiter> </delimiters> <useDefaultDelimiters>false</useDefaultDelimiters
>
</configuration> </plugin>

可以看到裡面的delimiter 替換為了 ${resource.delimiter}
再看一下這個配置是什麼?

 <!-- delimiter that doesn't clash with Spring ${} placeholders -->  <resource.delimiter>@</resource.delimiter>

我們可以看到變成了@ 符號,並且他也提示了需要使用與Spring $ {}佔位符不衝突的分隔符。

那麼把上面 logback

的配置項改一下即可

    <property name="LOG_FILE_HOME" value="@[email protected]" />

或者配置一下 ${resource.delimiter},但是不能與${} 衝突