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

为什么在build.gradle中把Maven Central放在JCenter前会找不到依赖?

报错原因

  1. 你用到的id.zelory:compressor:2.1.0版本仅在JCenter发布,并未同步到Maven Central,且该版本的POM文件存在编写缺陷,内部包含一个无group、无版本标识的无效依赖,对应报错信息里的:unspecified:。
  2. 虽然你保留了JCenter在仓库列表末尾,但Gradle会按配置顺序优先从靠前的仓库拉取依赖元数据,部分Gradle版本对跨仓库的传递依赖匹配存在逻辑缺陷,优先从Maven Central查找不到该库的有效元数据时,后续即使在JCenter找到对应库,也会出现传递依赖解析失败的问题。

解决方案

可以根据实际需求选择以下任意一种方案:

  • 升级Compressor版本:该库作者后续已将新版本发布到Maven Central,直接将依赖版本升级到3.0.1及以上即可,该版本不存在POM缺陷,完全适配Maven Central,无需再依赖JCenter拉取这个库。
  • 配置仓库匹配规则:如果暂时不想升级版本,可以在build.gradle中添加规则,明确指定id.zelory分组的依赖仅从JCenter拉取,避免Gradle优先去Maven Central查找导致解析失败,配置示例如下:
allprojects {
    repositories {
        google()
        mavenCentral()
        jcenter {
            content {
                // 仅允许从jcenter拉取该分组的依赖,其余依赖不会走jcenter
                includeGroup "id.zelory"
            }
        }
    }
}
  • 排除无效传递依赖:如果你确认该无效依赖不影响实际运行,可以在引入Compressor时手动排除这个无标识的依赖,示例如下:
implementation('id.zelory:compressor:2.1.0') {
    exclude group: '', module: 'unspecified'
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 05:42:02