如何解决Eclipse配合Tomcat编译GWT项目时的Java源码级别报错问题
故障原因
你遇到的是Eclipse中GWT插件配置与项目实际需求不匹配的问题,核心原因有两个:
- GWT 2.7.0默认使用Java 1.7作为源码编译级别,哪怕你本地安装了JDK1.8,没有手动修改GWT编译器配置的话,无法识别Lambda、方法引用等Java 1.8特性
- Eclipse的项目配置和你命令行使用的构建脚本(Maven/Gradle)配置不同步,命令行已经配置了正确的编译参数,所以能正常构建
解决方案
按以下步骤依次检查配置即可修复:
- 第一步:修改GWT编译器源码级别
右键项目 → 选择「Properties」 → 找到GWT配置项 → 切换到编译器设置页,将源码级别调整为1.8,保存配置 - 第二步:修改GWT模块配置文件
打开你项目中后缀为.gwt.xml的模块配置文件,添加以下配置:<!-- 指定GWT使用Java 1.8源码级别编译 --> <set-property name="java.source.level" value="1.8" /> <!-- 引入gwt-commons-lang3的模块声明,确保GWT能正确识别该依赖的源码 --> <inherits name="org.apache.commons.lang3.Lang3" /> - 第三步:同步Java项目编译级别
回到项目Properties页 → 选择「Java Compiler」,确认以下三个配置项都设置为1.8:- 编译器合规级别
- 生成的.class文件兼容性
- 源码兼容性
再进入「Java Build Path」页,检查Libraries标签下的JRE库版本为JavaSE-1.8,不是更低版本
- 第四步:清理缓存重新构建
依次执行以下操作:- 点击Eclipse顶部菜单栏「Project」→「Clean」,选中你的项目执行清理
- 右键项目 → 选择「Maven」→「Update Project」,同步依赖配置
- 重启Tomcat服务重新编译项目
补充说明
错误日志中提到的<source>指令仅当你没有继承对应依赖的模块声明时需要手动添加,你只要正确添加了上面提到的inherits配置就不需要额外设置。
内容的提问来源于stack exchange,提问作者Zankar Rashia
相关产品推荐
相关产品推荐

