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

无法更新maven-compiler-plugin中的maven-core依赖版本求助

问题分析与解决方案

为什么会出现maven-site-plugin?

maven-site-plugin并非maven-compiler-plugin的嵌套依赖,它出现在依赖列表里的核心原因是:

  • Maven的默认生命周期绑定:site阶段会自动关联maven-site-plugin,哪怕你没在pom里直接配置该插件,Maven也会自动引入其默认版本(你看到的版本和compiler-plugin一致只是巧合)。
  • 也存在其他已配置插件间接引入它的可能,但前者是更常见的情况。

旧版本maven-core仍被引入的原因

你仅给maven-compiler-plugin单独指定了maven-core的升级版本,但maven-site-plugin自身依赖的maven-core还是它默认的旧版本(3.2.5),所以执行mvn dependency:resolve-plugins时,旧版本maven-core会被site-plugin带进来。

修复方案

方案一:全局锁定maven-core版本(推荐)

在项目的<dependencyManagement>中添加maven-core版本锁定,这样所有插件(包括compiler、site及其他可能引入maven-core的插件)都会统一使用指定的新版本:

<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>org.apache.maven</groupId>
      <artifactId>maven-core</artifactId>
      <version>3.9.8</version>
    </dependency>
    <!-- 同步锁定maven-artifact,避免版本冲突 -->
    <dependency>
      <groupId>org.apache.maven</groupId>
      <artifactId>maven-artifact</artifactId>
      <version>3.9.8</version>
    </dependency>
  </dependencies>
</dependencyManagement>

方案二:单独配置maven-site-plugin

如果不想全局锁定,也可以直接在pom中配置maven-site-plugin,要么升级插件版本(3.14.0及以上版本依赖的maven-core版本更高,不会引入3.2.5),要么给它指定依赖的maven-core新版本:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-site-plugin</artifactId>
  <version>3.14.0</version>
  <!-- 若不想升级插件版本,可启用以下依赖配置 -->
  <!--
  <dependencies>
    <dependency>
      <groupId>org.apache.maven</groupId>
      <artifactId>maven-core</artifactId>
      <version>3.9.8</version>
    </dependency>
  </dependencies>
  -->
</plugin>

验证修复

执行mvn dependency:resolve-plugins命令,检查输出中maven-core的版本是否已更新为3.9.8,确认旧版本不再被引入。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 06:27:48