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

Gradle如何排除Spring Boot插件引入的commons-compress旧版本依赖

解决方案

你遇到的版本冲突是因为io.spring.dependency-management插件会默认遵循Spring Boot BOM中定义的依赖版本,优先级高于你在单个依赖声明中设置的strictly规则,按以下方法处理即可:

方法1:覆盖Spring Boot内置依赖版本(推荐)

Spring Boot BOM中commons-compress的版本由commons-compress.version属性控制,直接在buildscript的ext块中添加该属性覆盖默认值即可全局生效,不需要额外写排除规则,修改后的ext块如下:

buildscript {
    ext {
        // 原有属性保留
        springBootVersion = "2.4.6"
        junitVersion = "5.7.2"
        awsVersion = "1.11.728"
        lombokVersion = "1.18.12"
        resilience4jVersion = "1.7.0"
        logbackJsonVersion = "0.1.5"
        // 新增commons-compress版本覆盖
        'commons-compress.version' = '1.21'
    }
}

修改后可以删除原来dependencies中单独声明的带strictly规则的commons-compress依赖,该配置会自动让所有传递依赖都使用1.21版本。

方法2:显式配置依赖管理规则

如果方法1不生效,可以在build.gradle中单独添加dependencyManagement块指定版本:

dependencyManagement {
    dependencies {
        dependency 'org.apache.commons:commons-compress:1.21'
    }
}

验证方法

配置完成后执行以下命令检查依赖版本:

gradle dependencies --configuration runtimeClasspath | grep commons-compress

如果输出中只有1.21版本的commons-compress,说明配置生效。

特殊情况处理

如果仍存在1.20版本,执行上述命令可以看到1.20版本是被哪个上层依赖引入的,针对该依赖添加排除规则即可,示例如下:

implementation('{引入1.20版本的上层依赖Group}:{依赖名}:{版本}') {
    exclude group: 'org.apache.commons', module: 'commons-compress'
}

内容的提问来源于stack exchange,提问作者Kumari Sweta

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 03:15:03