我正在使用maven使用此配置编译我的项目:
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<encoding>UTF-8</encoding>
<source>${java.version}</source>
<target>${java.version}</target>
<showDeprecation>true</showDeprecation>
<showWarnings>true</showWarnings>
</configuration>
</plugin>
</plugins>
项目应该是UTF-8,但按照惯例.properties文件应该是latin1(ISO 8859-1),Eclipse会这样对待它们(我知道我可以改变Eclipse的行为方式,但那不是要点)。我使用.properties文件进行国际化。
问题在于,使用Eclipse部署到Tomcat,我可以很好地看到我的特殊字符,但是当通过maven编译时(例如,通过Jenkins),我得到所有混乱的字符,就像Maven正在翻译我的所有字符。属性为UTF-8,从而搞砸了我所有的i18n消息。
解决这个问题的正确方法是什么?感觉这应该是一个非常常见的问题,但我还没有在网上找到有效的解决方案。
答案 0 :(得分:3)
只需为包含ISO-LATIN1文件的资源目录创建一个补充条目,并显式关闭过滤。应该保留那些文件......
BTW:您应该使用编码属性,如:
notifications
可被大量插件识别,例如maven-compiler-plugin,maven-resources-plugin等。