<resources>
<resource>
<directory>${basedir}/src/main/resources</directory>
<filtering>true</filtering>
<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>
看到这段代码的时候,我感觉很矛盾,理解了很久,为啥它要先includes然后又excludes?
1、误区1:我认为filtering标签代表过滤
其实不是。filtering是代表要不要进行变量替换
2、误区2:我认为先includes然后又excludes,application不就被排除掉了吗?
其实不是这样。这里要分开理解,
第一个resource标签代表:仅把application文件复制到target/classes目录,并且在复制前先进行变量替换;
第二个resource标签代表:把src/main/resources目录下面所有内容复制到target/classes目录,并且排除掉application文件,application不需要复制过去