xml文件中無法獲取pom.xml文件中的屬性
問題描述
logback-spring.xml 文件中無法獲取 pom.xml 文件中的屬性,獲取到的值爲 undefined。
取值失敗原因及解決方法
在maven的pom文件中進行了多環境變量配置,引用了maven-resources-plugin,在logback.xml文件中通過以下方式獲取項目名稱,最終取值失敗 undefined。
<property name="LOGS" value="/var/logs/${project.name}" />
- pom.xml 打包中缺少下面配置,需要添加上去
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
- 由於
${}
方式會被maven處理。如果你的pom繼承了spring-boot-starter-parent,SpringBoot會將maven-resources-plugins默認的${}
方式改爲了@@
方式,如@name@
,此時若要使用${}
取值則需在pom.xml文件中添加如下配置:
// 方式一
<build>
<pluginManagement>
<plugins>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<configuration>
<encoding>utf-8</encoding>
<useDefaultDelimiters>true</useDefaultDelimiters>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
// 方式二
<configuration>
<delimiters>
<delimiter>@</delimiter>
</delimiters>
<useDefaultDelimiters>false</useDefaultDelimiters>
</configuration>
// 將<useDefaultDelimiters>false</useDefaultDelimiters>改爲<useDefaultDelimiters>true</useDefaultDelimiters>