maven編譯遇到"編碼GBK的不可對映字元"警告的處理
阿新 • • 發佈:2018-11-09
環境
作業系統:win10
JDK:1.8.0_144
maven:3.5.0
問題
普通的maven工程,java原始碼註釋中有中文,如下:
package com.bolingcavalry.addservice;
/**
* @author wilzhao
* @description 加法服務對應的介面
* @email [email protected]
* @time 2018/10/13 10:07
*/
public interface AddService {
int add(int a, int b);
}
使用下面的命令編譯:
mvn clean compile -Dmaven.test.skip= true
雖然提示編譯成功,但是有警告編碼GBK的不可對映字元,如下所示:
[WARNING] /C:/temp/201810/07/customizestarter/addservice/src/main/java/com/bolingcavalry/addservice/AddService.java:
[5,30] 編碼GBK的不可對映字元
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[ INFO] Total time: 1.853 s
[INFO] Finished at: 2018-10-13T11:07:16+08:00
[INFO] Final Memory: 13M/162M
[INFO] ------------------------------------------------------------------------
maven用的是win10的字符集,在winndows命令列輸入chcp,返回936表示GBK,如下圖:
而JAVA的字符集是UTF8,所以只要把maven編譯時的字符集改為UTF8即可;
解決辦法
在pom.xml的屬性節點中增加屬性:
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
整體效果如下圖,紅色是新增內容:
再編譯,這次沒有警告了:
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ addservice ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 2 source files to C:\temp\201810\07\customizestarter\addservice\target\classes
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2.332 s
[INFO] Finished at: 2018-10-13T11:28:40+08:00
[INFO] Final Memory: 13M/163M
[INFO] ------------------------------------------------------------------------