文章出處

一、問題描述

  今天在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文件中添加下面的配置:

1 <!-- 指明編譯源代碼時使用的字符編碼,maven編譯的時候默認使用的GBK編碼, 通過project.build.sourceEncoding屬性設置字符編碼,告訴maven這個項目使用UTF-8來編譯 -->
2     <properties>
3         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
4     </properties>

  或者在pom.xml的/project/build/plugins/下的編譯插件聲明 中加入下面的配置:

1 <encoding>utf8</encoding>

即:

復制代碼
 1 <plugin>
 2     <artifactId>maven-compiler-plugin</artifactId>
 3     <configuration>
 4         <source>1.6</source>
 5         <target>1.6</target>
 6         <!-- 指明編譯源代碼時使用的字符編碼,
 7         maven編譯的時候默認使用的GBK編碼, 
 8           通過encoding屬性設置字符編碼,
 9           告訴maven這個項目使用UTF-8來編譯 -->
10         <encoding>utf8</encoding> 
11     </configuration>
12 </plugin>
復制代碼

  這兩種方案都可以解決上述的問題,可以根據個人習慣來設置,如下圖所示方式是采用配置<project.build.sourceEncoding>屬性來指明編譯采用的字符編碼。

  

  今天被這個問題折騰夠久了,還好及時找到了解決辦法,在此記錄一下解決方案。


文章列表

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()