Maven使用FAQ:与Maven版本和字符集编码有关的编译错误处理
来源:互联网 发布:缅甸密松水电站 知乎 编辑:程序博客网 时间:2024/05/21 10:01
Maven使用FAQ:与Maven版本和字符集编码有关的编译错误处理
在Maven3.0下创建了一个POM文件,可对项目进行正常的构建,但版本改为Maven2.2.1时却出现类似如下的编译错误:
[ERROR] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Compilation failure
D:/workspace/rbdp/src/main/java/com/util/Test.java:[20,49] 需要 '}'
D:/workspace/rbdp/src/main/java/com/util/Test.java:[20,50] 非法字符: /65533
D:/workspace/rbdp/src/main/java/com/util/Test.java:[20,51] 需要 <标识符>
D:/workspace/rbdp/src/main/java/com/util/Test.java:[20,52] 需要 ';'
…
该错误显然跟字符集编码有关,但POM文件中已指定了编码为UTF-8,在POM文件中包含如下内容:
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
经反复试验和分析,发现这跟Maven版本有关。Maven3和Maven2版本变化不小,不完全兼容。
具体解决方法说明如下:
在确认POM文件中已有上述<project.build.sourceEncoding>内容的前提下,增加以下内容(如已包含maven-compiler-plugin的相关内容,则只需在相应位置增加红色字体部分内容):
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.5</source>
<target>1.5</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
注意:
1、同时指定<project.build.sourceEncoding>属性和<encoding>的方式可适用于Maven2和Maven3。
2、在Maven3中可以只增加<project.build.sourceEncoding>属性而不指定<encoding>,即能解决编译问题。如果只指定<encoding>编译不会出错,但会出现以下警告。建议两者都进行指定或只指定前者。警告信息如下:
[WARNING] Using platform encoding (GBK actually) to copy filtered resources, i.e. build is platform dependent!
3、在Maven2中,如果只指定<project.build.sourceEncoding>属性则编译出错;如果只指定<encoding>编译不会出错,但会出现与第2点类似的警告,建议两者都进行指定,以免对运行产生影响。
- Maven使用FAQ:与Maven版本和字符集编码有关的编译错误处理
- 指定maven的编译版本和编码
- MAVEN指定JDK版本和字符集编码
- 在MAVEN中配置JAVA源代码的编译版本及编码字符集
- maven编译编码、jdk版本
- 【maven】maven编译版本和jdk 版本?
- Maven中指定Java的编译版本和源文件编码方式
- 消除maven的编码字符集告警
- 消除maven的编码字符集告警
- maven修改编译字符集
- 使用maven的jetty插件项目一直报编译版本的错误
- maven编译出现编码 gbk 的不可映射字符错误
- maven编译出现错误 无效的目 标版本: 1.7
- idea 使用maven编译项目时出现源码版本警告的处理方式
- maven 使用Maven编译项目遇到——“maven编码gbk的不可映射字符”解决办法
- Maven-7:Maven配置编译的字符集方法
- Maven-7:Maven配置编译的字符集方法
- maven 设置编译版本为java8 设置字符集为utf8
- sap bw相关问答(1)
- winform中combox的运用
- php缓存技术
- Android真不适合做游戏,但Google收购Ajax工具厂商,增强Android
- apk软件签名
- Maven使用FAQ:与Maven版本和字符集编码有关的编译错误处理
- 如何量化考核软件开发人员绩效
- Asp.Net2.0之WebPart
- 自动化测试Cassandra脚本
- 每周一总结(5)
- C#实现窗体最小化时存至系统托盘,并为notifyicon添加右键菜单
- 因为数据库正在使用,所以无法获得对数据库的独占访问权
- C#中ADO.NET的DataSet读写XML文档
- failed to lazily initialize a collection of role: no session or session was closed (Hibernate) 解决方法(延迟加载问题)