在做項目時遇見一個問題,無法解析properties文件的 內容 異常為
Could not resolve placeholder .........
在此之前均有做相關的 配置 但是從未出現過如上異常,困惑了很久,最后把 war包提取出來得知 properties文件未被加載進項目中,因此無法識別。
但這的原因是為什么呢 ,原來此項目采用的是maven配置,但是maven在打包時將丟失properties文件,原因maven執行compile是只會掃描*.class文件。
那么這種請款添加如下配置即可。
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<includes>
<include>**/*.xml</include>
<include>*.properties</include>
</includes>
</resource>
</resources>
補充:
那么還有另外一中情況,如果我們在resource目錄下添加了另一個cfg.ini文件我們希望將其也在我們的包結構中呈現那么這種情況我們應該如何配置呢?
<resources> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> <!--替換文件內${}內的值為真實值--> <includes> <include>**/*.xml</include> <!--只加載xml文件--> </includes> </resource> <resource> <directory>src/main/resources</directory> <filtering>false</filtering> <excludes> <exclude>**/*.xml</exclude> <!-- 所有的非xml文件都加載進來,不替換--> </excludes> </resource> </resources>
請注意我上面的兩個配置,注意他們的區別,第一個為resource代表需要進行真實值的替換,包括下列文件,第二個為不需要進行真實值替換的包含的文件。
只有兩個都包括,這樣才會將properties ,xml , ini文件都加載到我們的項目包中。
當然最簡單的可以這樣,一了百了
<resources> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> </resource> </resources>
