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

如何在Kotlin DSL版build.gradle中排除全局依赖库?

解决Kotlin DSL中Guava ListenableFuture重复类冲突问题

我刚好在从Groovy迁移到Kotlin DSL时遇到过一模一样的问题,这就给你两种实用的解决办法:

1. 直接迁移Groovy的排除规则到Kotlin DSL

你原来Groovy里的全局排除配置,对应Kotlin DSL的写法是这样的:

configurations.all {
    exclude(group = "com.google.guava", module = "listenablefuture")
}

这段代码会遍历所有Gradle配置(比如implementation、testImplementation等),把所有依赖中的com.google.guava:listenablefuture模块排除掉,和你之前Groovy代码的作用完全一致。

2. 强制统一Guava版本(更稳妥的长期方案)

如果排除模块后还是有冲突,大概率是不同依赖引入了不同版本的Guava导致的。这时候可以通过强制统一Guava版本来彻底解决:

dependencies {
    // 使用Guava的BOM来统一所有相关依赖的版本
    implementation(platform("com.google.guava:guava-bom:32.1.3-jre"))
    // 或者直接给Guava依赖设置严格版本
    implementation("com.google.guava:guava") {
        version {
            strictly("32.1.3-jre")
        }
    }
}

BOM(Bill of Materials)会自动管理所有Guava相关子模块的版本,避免版本不一致带来的类重复问题。

额外排查技巧

你可以用Gradle的依赖树命令来定位到底是哪些依赖引入了重复的listenablefuture模块:

./gradlew yourModuleName:dependencies --configuration implementation

把yourModuleName换成你的实际模块名,就能清晰看到依赖链,方便更精准地处理冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 07:52:05