一、問題描述
今天在MyEclipse中使用Maven編譯項目源代碼時贫途,結(jié)果如下了如下的錯誤
image
百思不得其解啊,java源代碼在MyEclipse中顯示是沒有任何錯誤的,可是執(zhí)行"maven install"命令編譯項目時就會出現(xiàn)上述的錯誤蚁廓,導(dǎo)致項目編譯失敗。這個問題還是第一次遇到厨幻,還好在這里http://capslk.iteye.com/blog/1419958看到了解決問題的辦法相嵌。
二、解決辦法
解決這個問題的思路: 在maven的編譯插件中聲明正確的字符集編碼編碼——編譯使用的字符集編碼與代碼文件使用的字符集編碼一致?龃唷平绩!
安裝系統(tǒng)之后,一般中文系統(tǒng)默認(rèn)字符集是GBK漠另。我們安裝的軟件一般都繼承使用操作系統(tǒng)的默認(rèn)字符集捏雌。所以當(dāng)在中文XP或者win7系統(tǒng)開發(fā),在使用maven(mvn compile)編譯項目的時候笆搓,就會出現(xiàn)“編碼 gbk 的不可映射字符”: 這個是由于代碼使用的UTF-8性湿,而maven編譯的時候使用的GBK的緣故。 可以通過修改項目的pom文件满败,可以告訴maven這個項目使用UTF-8編碼來編譯肤频。在項目的pom.xml文件中添加下面的配置:
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
<!-- 指明編譯源代碼時使用的字符編碼,
maven編譯的時候默認(rèn)使用的GBK編碼算墨,
通過encoding屬性設(shè)置字符編碼宵荒,
告訴maven這個項目使用UTF-8來編譯 -->
<encoding>utf8</encoding>
</configuration>
</plugin>
或者在pom.xml的/project/build/plugins/下的編譯插件聲明 中加入下面的配置:
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
<!-- 指明編譯源代碼時使用的字符編碼,
maven編譯的時候默認(rèn)使用的GBK編碼,
通過encoding屬性設(shè)置字符編碼报咳,
告訴maven這個項目使用UTF-8來編譯 -->
<encoding>utf8</encoding>
</configuration>
</plugin>
這兩種方案都可以解決上述的問題侠讯,可以根據(jù)個人習(xí)慣來設(shè)置,如下圖所示方式是采用配置<project.build.sourceEncoding>屬性來指明編譯采用的字符編碼暑刃。
image.png