Eclipse2022-06更新后pom.xml报ExceptionInInitializerError如何解决
报错根因
这是Eclipse内置Maven集成(m2e)的构建兼容性问题,和命令行执行Maven打包的运行环境无关:
- Eclipse 2022-06 本身运行在高版本JDK上,m2e做增量构建时默认复用Eclipse的运行时JRE
- 当前pom里没有显式指定
maven-war-plugin版本,会默认解析到3.2.x及更早的旧版本,这类旧版本依赖的底层工具库通过反射访问Properties类的私有defaults字段,高版本JDK的模块化反射限制会直接拦截这个操作,抛出初始化错误 - 本地命令行打包使用的是JDK 8环境,没有模块化的访问限制,所以制品生成流程完全正常,不会报错
修复步骤
直接在pom的build -> plugins节点下,给maven-war-plugin显式指定兼容高版本JDK的新版本即可,替换原有插件配置为如下内容:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>3.3.2</version> <configuration> <webXml>WebContent\WEB-INF\web.xml</webXml> <encoding>UTF-8</encoding> </configuration> </plugin>
保存pom文件后,右键对应项目选择Maven > Update Project,选中项目确认更新即可,问题视图里的报错会直接消除。
如果更新后还有残留报错,可以补做两步操作:
- 执行Update Project时勾选Force Update of Snapshots/Releases,强制重新拉取正确版本的插件依赖
- 打开顶部菜单
Project > Clean,选中对应项目清理Eclipse的编译缓存
内容的提问来源于stack exchange,提问作者Rubén Aguado
相关产品推荐
相关产品推荐

