IntelliJ中gwt-maven-plugin的sourcelevel错误警告问题求助
问题说明
我在pom.xml中配置了gwt-maven-plugin(代码如下),设置<sourceLevel>auto</sourceLevel>后,IntelliJ中出现来自项目Facets设置的错误警告。尝试将sourceLevel改为1.11或1.8,使用最新版GWT,本地JDK路径为~/Library/Java/JavaVirtualMachines/openjdk-21.0.1/Contents/Home/bin/java,问题仍未解决。
插件配置:
<plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>gwt-maven-plugin</artifactId> <version>${gwt.version}</version> <executions> <execution> <configuration> <style>${gwtcompiler.style}</style> <optimizationLevel>${gwtcompiler.optimizationLevel}</optimizationLevel> <sourceLevel>auto</sourceLevel> </configuration> <goals> <goal>compile</goal> <goal>generateAsync</goal> <goal>test</goal> </goals> </execution> </executions> <configuration> <extraJvmArgs> -javaagent:${settings.localRepository}/org/projectlombok/lombok/${lombok.version}/lombok-${lombok.version}.jar=ECJ --add-opens java.base/java.lang=ALL-UNNAMED </extraJvmArgs> <runTarget>index.html</runTarget> <draftCompile>false</draftCompile> <sourceLevel>auto</sourceLevel> </configuration> </plugin>
解决思路与方案
对齐JDK版本配置:
最新GWT对JDK 17+的支持有限,优先采用GWT官方推荐的JDK 11。打开File > Project Structure:- 在
Project选项卡中,将Project SDK切换为JDK 11 - 在
Modules的GWT Facet设置里,把Source Level改成和pom.xml一致的11(不要用1.11的旧格式)
- 在
统一sourceLevel配置:
插件的全局配置和execution块中重复设置了sourceLevel,存在优先级冲突。保留一处配置即可,建议只在全局<configuration>中指定sourceLevel为11,避免重复定义导致IntelliJ识别混乱。刷新IntelliJ缓存与Maven配置:
点击Maven面板的Reload All Maven Projects,然后执行File > Invalidate Caches... > Invalidate and Restart,清除旧缓存后重启IDE,确保新配置生效。排查Lombok兼容性:
暂时移除插件配置中的Lombok javaagent参数,观察警告是否消失。如果消失,说明Lombok版本与当前GWT/JDK不兼容,更新Lombok到最新稳定版(如1.18.30+)再试。更换为维护活跃的GWT插件:
旧的org.codehaus.mojo插件维护不活跃,建议替换为net.ltgt.gwt.maven:gwt-maven-plugin,新插件对IntelliJ的支持更友好,能减少配置识别冲突。
内容的提问来源于stack exchange,提问作者Hansjörg Hofer

