1. 程式人生 > >maven編譯遇到"編碼GBK的不可對映字元"警告的處理

maven編譯遇到"編碼GBK的不可對映字元"警告的處理

環境

作業系統: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] ------------------------------------------------------------------------