2
我使用maven使用此配置編譯我的項目:Maven的編譯UTF-8屬性文件
<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翻譯所有我的.properties到UTF-8,從而擰緊我所有的i18n消息。
解決此問題的正確方法是什麼?感覺這應該是一個非常普遍的問題,但我還沒有在網上找到有效的解決方案。
我假設你已經在你的pom文件中定義了某種過濾方式?沒有整個POM文件很難看到發生了什麼... – khmarbaise
我確實有一些過濾,你認爲這可能是問題嗎?將這些行添加到我的原始帖子中。 –
只需爲包含ISO-LATIN1文件的資源目錄創建補充條目並明確禁用過濾。比那些文件應該保留,因爲它們是... – khmarbaise