You need to enable JavaScript to run this app. Spring Boot项目在IntelliJ执行Maven命令报依赖缺失/重复错误求助
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot项目在IntelliJ执行Maven命令报依赖缺失/重复错误求助

Maven构建报错修复方案

现状说明

  • 业务目标:通过IntelliJ的Maven运行配置生成Jar包,已配置两个Maven执行项:
    • clean配置:执行命令clean -U
    • install配置:执行命令install
  • 故障现象:每次运行clean配置时稳定抛出POM解析失败错误,完整报错如下:
[ERROR] Some problems were encountered while processing the POMs:
'dependencies.dependency.(groupId:artifactId:type:classifier)' must be unique: com.jayway.jsonpath:json-path:jar -> duplicate declaration of version (?) @ line 141, column 21
'dependencies.dependency.version' for org.hibernate:hibernate-validator:jar is missing. @ line 57, column 21
The build could not read 1 project

已完成但无效的排查操作

  • 重新导入Maven项目
  • 删除本地.m2仓库全量缓存
  • 手动移除报错提示中涉及的依赖
  • 清除IntelliJ全部缓存并重启

问题根因分析

报错提示的行号不属于你当前项目的POM文件,是Maven解析过程中加载的上游依赖POM的行号,这也是之前手动在项目POM里定位对应行、移除依赖没有效果的核心原因。

结合两个报错特征推导,问题根源来自和Spring Boot 2.4.4版本依赖管理规则不兼容的第三方依赖引入:

  • 第一冲突源:org.springframework.security.oauth:spring-security-oauth2:2.0.14.RELEASE
    这个2018年发布的老版本OAuth2依赖,本身会传递引入无版本声明的com.jayway.jsonpath:json-path,和Spring Boot BOM统一管理的json-path版本产生重复声明冲突;同时这个老依赖的POM结构不符合Maven最新的解析校验规则,会打乱Spring Boot BOM对hibernate-validator的版本管理逻辑,触发缺失版本的报错。
  • 第二潜在冲突源:和当前Spring Boot版本依赖管理范围不匹配的第三方依赖
    包括com.amazonaws:aws-java-sdk-appstream:1.11.133、net.sf.jasperreports:jasperreports:6.16.0,这些依赖的版本发布时间和Spring Boot 2.4.4的发布时间差较大,传递依赖的版本规则会进一步干扰POM解析流程,放大错误。

具体修复操作

  1. 排除不兼容老依赖的冲突传递包
    针对spring-security-oauth2依赖,添加排除规则移除重复的json-path依赖,写法如下:
    <dependency>
        <groupId>org.springframework.security.oauth</groupId>
        <artifactId>spring-security-oauth2</artifactId>
        <version>2.0.14.RELEASE</version>
        <exclusions>
            <!-- 排除重复声明的json-path依赖 -->
            <exclusion>
                <groupId>com.jayway.jsonpath</groupId>
                <artifactId>json-path</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    
  2. 校准其他高版本差依赖的传递规则
    执行mvn dependency:tree命令排查aws-java-sdk-appstream、jasperreports两个依赖的传递链路,若发现存在重复引入、无版本声明的依赖,同样添加排除规则对齐Spring Boot BOM的版本管理逻辑。
  3. 重新执行构建命令
    先执行clean -U强制拉取最新的依赖元数据刷新本地缓存,再执行install完成Jar包构建。

内容的提问来源于stack exchange,提问作者Owais Kalimi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.22 17:57:11