專案開發時正常,打包成 WAR/JAR 後卻拋出 Could not resolve placeholder 異常。原因:Maven compile 階段預設只編譯 *.class,不會將 src/main/resources 下的非 Java 檔案(如 .properties、.xml)打包進輸出目錄。
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<includes>
<include>**/*.xml</include>
<include>*.properties</include>
</includes>
</resource>
</resources>
</build>
<directory>:指定資源目錄<filtering>true</filtering>:啟用 Maven 變量替換(如 ${property})<includes>:明確包含的檔案模式,** 表示遞迴子目錄src/main/java 下的資源檔也需在 <resources> 中額外宣告mvn clean packageWEB-INF/classes 或根目錄下有 .properties 檔