maven 编译时报错:编码 UTF-8 的不可映射字符

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了maven 编译时报错:编码 UTF-8 的不可映射字符相关的知识,希望对你有一定的参考价值。

这是什么问题

应该还有别的错误,编码问题正常只是警告,只有报其他错误的时候,编码也提示为错误了!追问

我删掉报错的乱码就可以了,但是太多了,不好改

参考技术A   解决这个问题的思路:
  在maven的编译插件中声明正确的字符集编码编码——编译使用的字符集编码与代码文件使用的字符集编码一致。
  安装系统之后,一般中文系统默认字符集是GBK。我们安装的软件一般都继承使用操作系统的默认字符集。
  所以,在很多中文XP win7的用户,在使用maven(mvn compile)编译项目的时候,就会出现“编码 gbk 的不可映射字符”:
  这个是由于代码使用的UTF-8,而maven编译的时候使用的GBK的缘故。 通过修改pom文件,可以告诉maven这个项目使用UTF-8来编译。在pom的/project/build/plugins/下的编译插件声明 中加入下面的配置:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.1</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
<encoding>utf8</encoding>
</configuration>
</plugin>

maven编译或测试时报错,需要改maven-compiler-plugin配置

报错信息:

  [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project MakeFridends: Compilation failure:      Compilation failure:
  [ERROR] Source option 5 is no longer supported. Use 6 or later.
  [ERROR] Target option 1.5 is no longer supported. Use 1.6 or later.

修改如下:

  一般情况下,这段pom代码应该在你们的pom.xml靠下方的位置
父节点应该是
你仔细看里面有一个plugin就是这个插件
报这个错是因为你的本地开发jdk版本比你pom文件用的高
改成你需要的版本就行了

maven项目最最主要的目录结构
root
+/src 这里是源码和配置文件
+pom.xml 这个是maven的管理文件 Project Object Model
-----------------------在自己工程的pom文件下添加如下配置信息

<build>  
       <plugins>    
             <plugin>    <!--plugins要写在build标签下,不然无法识别 -->
                <artifactId>maven-compiler-plugin</artifactId>    
                <version>3.1</version>    <!--maven-compiler-plugin版本写一个中央仓库有的版本,保存后它会自动下载 -->
                <configuration>    
                    <source>10</source>    <!--我的jdk是10.0.1的,写成10.0.1不好用,所以就写成10了 -->
                    <target>10</target>    
                </configuration>    
            </plugin>  
         </plugins>  
     </build>  

 











以上是关于maven 编译时报错:编码 UTF-8 的不可映射字符的主要内容,如果未能解决你的问题,请参考以下文章

解决java编译错误:编码GBK的不可映射字符

Maven编译项目时报错:不再支持源选项 5。请使用 6 或更高版本。 不再支持目标选项 1.5。请使用 1.6 或更高版本。

maven异常解决:编码GBK的不可映射字符

Linux 环境下 javac 编译错误: 编码UTF8的不可映射字符 (编码UTF8/GBK的不可映射字符)

maven编译报错 -source 1.5 中不支持 lambda(或diamond) 表达式,编码 UTF-8 的不可映射字符

eclipse解决maven编码UTF-8的不可映射字符