将 maven-compiler-plugin 配置为使用与源文件编码相同的字符编码(例如):
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
默认情况下,许多 maven 插件将使用 “project.build.sourceEncoding” 属性,因此在 pom 中设置此属性将涵盖大多数插件。
<project>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
...
但是,我更喜欢在每个插件的配置中设置支持它的编码,因为我喜欢显式。
当您的源代码由 maven-compiler-plugin 编译时,编译器插件将使用编译器插件配置的任何编码读取您的源代码文件。如果您的源文件的编码与编译器插件使用的编码不同,则某些字符可能不存在于两种编码中。
许多人更喜欢将源文件的编码设置为UTF-8,以避免此问题。要在 Eclipse 中执行此操作,您可以右键单击某个项目,然后选择“属性->资源->文本文件编码”,然后将其更改为 UTF-8。这将以 UTF-8 格式对所有源文件进行编码。(如上所述,您还应该显式配置 maven-compiler-plugin 以使用 UTF-8 编码。由于源文件和编译器插件都使用相同的编码,因此在编译过程中不应再有任何不可映射的字符。
注意,您还可以通过 Window->Preferences->General->Workspace->Text File Encoding 在 eclipse 中全局设置文件编码。您还可以通过“窗口>首选项>一般>内容类型”来设置每种文件类型的编码。