我正在开发一个基于 Maven 的网络项目。在我的网络模块中,我使用不同语言的特定资源包(德语、西班牙……)。
我的所有源代码均基于 UTF-8,一切正常。
现在需要根据不同的maven配置文件激活maven资源过滤来替换一些配置。
我的 pom.xml:
.....
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
.....
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
....
从这一刻起,我的 war 文件包含编码错误的资源包。例如,德语变音符号不再正确显示在我的 Web 应用程序中。
当我禁用资源过滤时,一切又恢复正常。
我找到的唯一解决方案是将属性project.build.sourceEncoding 设置为“ISO-8859-1”
<properties>
<project.build.sourceEncoding>ISO-8859-1</project.build.sourceEncoding>
</properties>
但我不明白为什么这是必要的?我所有的源都是 UTF-8 并且我的应用程序也是基于 UTF-8?
如果我需要添加包含日语字符的资源包,会发生什么情况?
我正在使用 Eclipse 4.2 和 Maven 3 在 Linux 上进行开发
您可以在资源插件配置中指定编码,如下所示:
<project>
...
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.6</version>
<configuration>
...
<encoding>UTF-8</encoding>
...
</configuration>
</plugin>
</plugins>
...
</build>
...
</project>
链接到文档
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)