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>