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 的不可映射字符的主要内容,如果未能解决你的问题,请参考以下文章
Maven编译项目时报错:不再支持源选项 5。请使用 6 或更高版本。 不再支持目标选项 1.5。请使用 1.6 或更高版本。
Linux 环境下 javac 编译错误: 编码UTF8的不可映射字符 (编码UTF8/GBK的不可映射字符)
maven编译报错 -source 1.5 中不支持 lambda(或diamond) 表达式,编码 UTF-8 的不可映射字符