Maven工程中,资源文件一般放在/src/test/resources路径下面,并且在pom.xml中配置了资源文件描述:
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
这样就指定了该路径下的文件在打包的时候会被自动拷贝到classes目录下。
但是这个配置中使用了
<filtering>true</filtering>
表明该路径下的文件在拷贝的工程中需要过滤其中的ER表达式,及替换其中的表达式为配置的值。
但是问题就出现在这一步,替换过程中没有规定该文件的编码,导致了替换过后的文件中可能存在乱码的问题。
解决方案如下:
在pom.xml文件中添加配置
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.5</version>
<configuration>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
这样就通过插件指定了过滤文件时使用的文件编码,避免了乱码现象。
当然,直接使用
<filtering>false</filtering>
就不存在这种问题。