You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java11升级至17后Maven-war-plugin:2.2 API不兼容报错求助

问题解决:Maven War插件Java 17兼容错误

背景信息

  • 公司项目已从Java 11升级至17,同步更新了以下内容:Eclipse版本、Java版本、surefire插件配置、settings.xml中的mirrorOf标签
  • 当前环境版本详情:
    • Java版本:17
    • Java Home:C:\Program Files\Java\jdk-17.0.5
    • Java路径:C:\Program Files\Java\jdk-17.0.5\bin
    • pom.xml中指定Java版本:17
    • 系统安装Maven版本:3.8.5
    • MAVEN_HOME:C:\project\Softwares\Maven\apache-maven-3.8.5\bin
    • pom.xml中指定Maven版本:3.8.1

报错信息

Unable to load the mojo 'war' in the plugin 'org.apache.maven.plugins:maven-war-plugin:2.2' due to an API incompatibility: org.codehaus.plexus.component.repository.exception.ComponentLookupException: Cannot access defaults field of Properties

解决方案

问题根源

maven-war-plugin:2.2版本过于老旧,不支持Java 17的反射访问限制。Java 17收紧了反射权限,旧版本插件代码尝试访问Properties类的defaults字段,触发权限禁止错误。

修复步骤

  1. 在pom.xml中升级maven-war-plugin至兼容Java 17的版本,推荐使用3.3.2及以上版本,配置示例:
<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-war-plugin</artifactId>
      <version>3.3.2</version>
    </plugin>
  </plugins>
</build>
  1. 执行命令mvn clean install重新构建项目,验证错误是否消除。

额外建议

检查项目中其他Maven插件(如maven-compiler-plugin、maven-surefire-plugin)的版本,确保均使用支持Java 17的版本,避免后续出现同类兼容问题。

内容的提问来源于stack exchange,提问作者Ruchi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 14:20:26