使用Maven編譯項目遇到——「maven編碼gbk的不可映射字符」解決辦法

1、問題描述

  今天在MyEclipse中使用Maven編譯項目源代碼時,結果以下了以下的錯誤java

百思不得其解啊,Java源代碼在MyEclipse中顯示是沒有任何錯誤的,但是執行"maven install"命令編譯項目時就會出現上述的錯誤,致使項目編譯失敗。這個問題仍是第一次遇到,還好在這裏http://capslk.iteye.com/blog/1419958看到了解決問題的辦法。maven

2、解決辦法

 

  解決這個問題的思路: 在maven的編譯插件中聲明正確的字符集編碼編碼——編譯使用的字符集編碼與代碼文件使用的字符集編碼一致!!ui

  安裝系統以後,通常中文系統默認字符集是GBK。咱們安裝的軟件通常都繼承使用操做系統的默認字符集。因此當在中文XP或者win7系統開發,在使用maven(mvn compile)編譯項目的時候,就會出現「編碼 gbk 的不可映射字符」: 這個是因爲代碼使用的UTF-8,而maven編譯的時候使用的GBK的緣故。 能夠經過修改項目的pom文件,能夠告訴maven這個項目使用UTF-8編碼來編譯。在項目的pom.xml文件中添加下面的配置:編碼

 

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


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

 

 

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>屬性來指明編譯採用的字符編碼。操作系統

 

相關文章
相關標籤/搜索