maven 使用Maven編譯專案遇到——“maven編碼gbk的不可對映字元”解決辦法

Coding-lover發表於2015-09-22

一、問題描述

  今天在MyEclipse中使用Maven編譯專案原始碼時,結果如下了如下的錯誤

  百思不得其解啊,java原始碼在MyEclipse中顯示是沒有任何錯誤的,可是執行”maven install”命令編譯專案時就會出現上述的錯誤,導致專案編譯失敗。這個問題還是第一次遇到,還好在這裡http://capslk.iteye.com/blog/1419958看到了解決問題的辦法。

二、解決辦法

  解決這個問題的思路: 在maven的編譯外掛中宣告正確的字符集編碼編碼——編譯使用的字符集編碼與程式碼檔案使用的字符集編碼一致!!

  安裝系統之後,一般中文系統預設字符集是GBK。我們安裝的軟體一般都繼承使用作業系統的預設字符集。所以當在中文XP或者win7系統開發,在使用maven(mvn compile)編譯專案的時候,就會出現“編碼 gbk 的不可對映字元”: 這個是由於程式碼使用的UTF-8,而maven編譯的時候使用的GBK的緣故。 可以通過修改專案的pom檔案,可以告訴maven這個專案使用UTF-8編碼來編譯。在專案的pom.xml檔案中新增下面的配置:

 <!-- 指明編譯原始碼時使用的字元編碼,maven編譯的時候預設使用的GBK編碼, 通過project.build.sourceEncoding屬性設定字元編碼,告訴maven這個專案使用UTF-8來編譯 -->
     <properties>
         <project.build.sourceEncoding>UTF-</project.build.sourceEncoding>
     </properties>

  或者在pom.xml的/project/build/plugins/下的編譯外掛宣告 中加入下面的配置:
  

<encoding>utf8</encoding>

即:

<plugin>
    <artifactId>maven-compiler-plugin</artifactId>
    <configuration>
        <source>1.6</source>
        <target>1.6</target>
        <!-- 指明編譯原始碼時使用的字元編碼,
        maven編譯的時候預設使用的GBK編碼, 
          通過encoding屬性設定字元編碼,
          告訴maven這個專案使用UTF-8來編譯 -->
        <encoding>utf8</encoding> 
    </configuration>
</plugin>

  這兩種方案都可以解決上述的問題,可以根據個人習慣來設定,如下圖所示方式是採用配置

相關文章