无法更新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
相关产品推荐
相关产品推荐

