对Maven resource 配置中include与exclude及其filter的理解
<include>
与<exclude>
是用来圈定和排除某一文件目录下的文件是否是工程资源的。如果<include>
与<exclude>
划定的范围存在冲突时,以exclude划定的范围为准。大多数情况下,人们使用include和exclude是为了配合<filtering>
实现过滤特定文件的需要。
从编译后的文件理解
<resource>
<!--目录-->
<directory>src/main/resources</directory>
<!--过滤-->
<filtering>true</filtering>
<!--包含-->
<includes>
<include>application.yml</include>
<include>application-dev.yml</include>
</includes>
</resource>
<resource>
<!--目录-->
<directory>src/main/resources</directory>
<!--过滤-->
<filtering>false</filtering
<!--排除-->
<excludes>
<exclude>application.yml</exclude>
<exclude>application-dev.yml</exclude>
</excludes>
</resource>
个人理解
<filtering>
为true是被选择器选中的<include>
文件不过滤掉,打包进classes目录,但与此同时,剩下没被选中的<exclude>
,都不会被打包进classes目录.为false不处理,但如果添加了<include>
和<exclude>
也会按照<include>
和<exclude>
处理。