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

Java11升级至Java17时maven-war-plugin缺失类报错求助

解决Java 17升级后maven-war-plugin构建报错问题

问题本质

你碰到的org/apache/maven/shared/filtering/MavenFilteringException类缺失错误,核心原因是maven-war-plugin 3.3.1版本与Java 17不兼容——该版本依赖的maven-shared-filtering组件版本过低,无法适配Java 17的字节码规范和类加载逻辑。

具体解决方案

1. 升级maven-war-plugin到兼容版本

直接把maven-war-plugin升级到3.4.0及以上版本,新版本已经适配Java 17,且内置了兼容的maven-shared-filtering依赖。修改pom.xml中的插件配置:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <!-- 推荐用3.4.2这类稳定新版本 -->
    <version>3.4.2</version>
</plugin>

2. (可选)强制指定maven-shared-filtering版本

如果暂时不想升级war插件,可以显式添加maven-shared-filtering依赖,强制使用兼容Java 17的版本(推荐3.3.0及以上):

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <version>3.3.1</version>
    <dependencies>
        <dependency>
            <groupId>org.apache.maven.shared</groupId>
            <artifactId>maven-shared-filtering</artifactId>
            <version>3.3.0</version>
        </dependency>
    </dependencies>
</plugin>

3. 确保Maven版本适配Java 17

同时检查你的Maven版本,必须使用3.8.6及以上版本,老版本Maven(比如3.6.x系列)对Java 17的支持存在缺陷,会引发各类插件兼容性问题。

验证修改

执行mvn clean package重新构建,若仍有报错,可运行mvn dependency:tree查看maven-shared-filtering的实际依赖版本,确认是否被其他插件或依赖降级,如有则通过<exclusions>标签强制排除低版本依赖。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 22:00:53