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

JDK11迁移时Maven surefire-plugin执行版本与pom声明不一致如何排查

Maven surefire插件版本被覆盖的常见原因

你可以先执行 mvn help:effective-pom 命令输出项目最终生效的pom配置,搜索maven-surefire-plugin即可确认实际生效的2.20.1版本的来源,常见的覆盖场景如下:

  • 父POM的pluginManagement配置优先级更高
    如果你的项目继承了第三方父POM(如Spring Boot父POM、企业内部公共父POM),父POM的<build><pluginManagement>节点中如果声明了maven-surefire-plugin的版本,优先级会高于子模块直接声明的插件版本。如果需要覆盖父POM的配置,你可以在当前模块的<build><pluginManagement>节点下重新声明2.22.2版本的surefire插件。
  • 激活的Profile强制指定了版本
    检查三类配置中激活的profile是否包含surefire版本配置:当前项目pom.xml中的profile、用户目录下.m2/settings.xml的profile、Maven安装目录下conf/settings.xml的全局profile。激活的profile中声明的插件版本会覆盖普通配置的版本,你可以执行mvn help:active-profiles命令查看当前所有激活的profile逐一排查。
  • 第三方插件绑定了低版本surefire
    部分和测试流程绑定的第三方Maven插件(如代码覆盖率插件、静态扫描插件)会强制依赖指定版本的surefire插件,传递引入2.20.1版本覆盖你的配置。
  • 本地Maven元数据缓存异常
    删除本地Maven仓库下org/apache/maven/plugins/maven-surefire-plugin目录,再执行mvn clean install -U重新拉取插件,排除缓存损坏导致的版本调用异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 16:57:03