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

maven-war-plugin:2.3执行war目标失败,咨询原因与解决办法

Maven打包错误原因及解决方法

错误详情

在项目Project上执行目标org.apache.maven.plugins:maven-war-plugin:2.3:war(default-war)失败:执行目标org.apache.maven.plugins:maven-war-plugin:2.3:war的default-war失败:由于API不兼容,无法加载插件org.apache.maven.plugins:maven-war-plugin:2.3中的mojo 'war':org.codehaus.plexus.component.repository.exception.ComponentLookupException: null

realm = plugin>org.apache.maven.plugins:maven-war-plugin:2.3
strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy
urls[0] = file:/C:/Users/Ram%20Ishwer%20Kumar/.m2/repository/org/apache/maven/plugins/maven-war-plugin/2.3/maven-war-plugin-2.3.jar
...(其余依赖URL略)

: ExceptionInInitializerError: 无法访问私有最终字段java.util.Comparator java.util.TreeMap.comparator:模块java.base未向未命名模块@3fe512d2开放"java.util"权限
-> [帮助1]

错误原因

  • maven-war-plugin:2.3是2013年发布的老旧版本,依赖的组件(如XStream 1.4.3、Plexus系列库)未适配Java 9及以上版本的模块化系统(JPMS)。
  • Java 9及以上版本引入的模块系统限制了反射对核心类私有成员的访问,插件试图通过反射访问java.util.TreeMap的私有字段comparator,但核心模块java.base未向未命名模块开放该权限,导致插件加载失败。

解决方法

  1. 优先升级maven-war-plugin版本
    在项目pom.xml中更新插件至兼容Java 9+的稳定版本(推荐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>
    

    执行mvn clean package重新构建项目。

  2. 降级至Java 8环境
    若暂时无法升级插件,可将项目的编译、运行环境切换到Java 8——Java 8没有模块化限制,旧版本插件可正常工作。

  3. 临时添加JVM参数绕过限制(不推荐长期使用)
    运行Maven时添加以下参数,临时开放核心模块的反射访问权限:

    mvn clean package --add-opens java.base/java.util=ALL-UNNAMED
    

    此方法仅作为临时应急方案,无法从根源解决兼容性问题。

内容的提问来源于stack exchange,提问作者Ram Ishwer Kumar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 20:50:25