xml文件中無法獲取pom.xml文件中的屬性

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}" />
  1. pom.xml 打包中缺少下面配置,需要添加上去
	<resources>
	    <resource>
	        <directory>src/main/resources</directory>
	        <filtering>true</filtering>
	    </resource>
	</resources>
  1. 由於 ${} 方式會被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>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章