当存在编码格式不同于项目环境而不能转码的资源文件时,<filtrering>标签为true时导入该资源文件可能会造成乱码。
可以先使用<exclude>标签将该资源文件在<filtrering>为true的<resource>中除去,再新建<filtrering>为false的<resource>标签,将资源文件用<includes>标签导入。
当同一个<resource>标签下同时使用<includes><exclude>且范围相冲突时,以<exclude>为主。
当只使用<includes>单个标签时,表示该路径只有被<includes>指定的文件为资源文件。当只使用<exclude>单个标签时,表示改路径下只有被<exclude>指定的文件不是资源文件。

源码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<resources>
<resource> <!-- 配置需要被替换的资源文件路径, db.properties 应该在 src/main/resource 目录下 -->
<directory>src/main/resources</directory>
<filtering>true</filtering> <!-- 是否使用过滤器,使用会造成资源文件编码格式被强制更替为编译时指定的编码格式 -->
<excludes>
<exclude>log4j2-test.xml</exclude>
<exclude>filters/**</exclude>
<exclude>uni/**</exclude><!-- 防止更替资源文件编码格式,除去资源文件 -->
<exclude>dahua/**</exclude>
<exclude>hik/**</exclude>
</excludes>
</resource>
<resource>
<directory>src/main/resources</directory>
<filtering>false</filtering>
<includes>
<include>uni/**</include><!-- 防止更替资源文件编码格式,重新导入文件 -->
<include>dahua/**</include>
<include>hik/**</include>
</includes>
</resource>
</resources>