Maven 设置项目编码 , 需要在 pom.xml
文件中指定源码的字符集 , 设置 property
变量
现有 UTF-8 编码的源代码文件如下 :
package com.ensk.exp;
public class HelloMaven {
public static void main(String[] args) {
System.out.println("Hello Maven 你好啊");
}
}
在 pom.xml
文件中设置 property
变量 , 指定源码 , 编译器的编码为 UTF-8
编码 , 如下 :
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<maven.compiler.encoding>UTF-8</maven.compiler.encoding>
</properties>
运行编译和运行命令 :
# mvn compile
# mvn exec:java -Dexec.mainClass="com.ensk.exp.HelloMaven"
...
[INFO] --- exec-maven-plugin:1.6.0:java (default-cli) @ maven-encoding ---
Hello Maven 你好啊
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
...
顺利编译并正常输出
如果将编码设置为 GBK
, 与源码编码不一致 , 如下 :
<properties>
<project.build.sourceEncoding>GBK</project.build.sourceEncoding>
<project.reporting.outputEncoding>GBK</project.reporting.outputEncoding>
<maven.compiler.encoding>GBK</maven.compiler.encoding>
</properties>
运行编译和运行命令 :
# mvn clean
# mvn compile
...
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] /C:/Users/dayi_wei/Desktop/maven-encoding/src/main/java/com/ensk/exp/HelloMaven.java:[5,53] 编码GBK的不可映射字符
[ERROR] /C:/Users/dayi_wei/Desktop/maven-encoding/src/main/java/com/ensk/exp/HelloMaven.java:[5,36] 未结束的字符串文字
...
无法编译 , 提示不可映射字符 , 项目中一定要注意编码
作者 Github : tojohnonly , 博客 : EnskDeCode