spring-boot-starter-parent:2.0.2.RELEASE.pom里面有如下一段。看不懂有什么作用,首先filtering,然后excluses不就等于全部資源都包含進去了嗎?感覺毫無用處,為啥要這樣寫?
<build>
<resources>
<resource>
<filtering>true</filtering>
<directory>${basedir}/src/main/resources</directory>
<includes>
<include>**/application*.yml</include>
<include>**/application*.yaml</include>
<include>**/application*.properties</include>
</includes>
</resource>
<resource>
<directory>${basedir}/src/main/resources</directory>
<excludes>
<exclude>**/application*.yml</exclude>
<exclude>**/application*.yaml</exclude>
<exclude>**/application*.properties</exclude>
</excludes>
</resource>
</resources>
uj5u.com熱心網友回復:
頂頂頂頂頂頂頂頂uj5u.com熱心網友回復:
<filtering>true</filtering>是加在include里的吧?uj5u.com熱心網友回復:
參考https://stackoverflow.com/questions/34749819/maven-resource-filtering-exclude/34750851
uj5u.com熱心網友回復:
原始碼就是這樣的,直接copy的。不會錯
uj5u.com熱心網友回復:
filtering標簽的意思并不是說是否后面的內容要做include和exclude操作。而是說相關的資源是否要對內容做處理。包括替換資源里面相應的變數值什么的。比如你在application.properties里面使用了maven中定義的變數@version@,使用filter以后就會將include中指定的檔案內容中@version@替換成實際值。所以你可以看到定義了兩個resource塊。
<resource>
<filtering>true</filtering>
<directory>${basedir}/src/main/resources</directory>
<includes>
<include>**/application*.yml</include>
<include>**/application*.yaml</include>
<include>**/application*.properties</include>
</includes>
</resource>
這一塊指定這些檔案需要做資源過濾,將會替換其中的變數。
<resource>
<directory>${basedir}/src/main/resources</directory>
<excludes>
<exclude>**/application*.yml</exclude>
<exclude>**/application*.yaml</exclude>
<exclude>**/application*.properties</exclude>
</excludes>
</resource>
同樣因為前面對這些檔案做過特殊處理,所以這邊將相應資源設定為exclude
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/250966.html
標籤:Java EE
