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

Android项目:仅用jcenter还是同时用jcenter与mavenCentral更稳定?

从应用稳定性角度,仅用jcenter()还是同时用jcenter()+mavenCentral()更稳妥?

结论:同时配置两个仓库更稳妥

核心原因:

  • jcenter的长期停用风险:jcenter早在2021年就转为只读状态,不再接受新包上传,官方明确后续会逐步终止服务。如果只依赖jcenter,哪天它彻底下线,你的项目直接就拉取不到依赖,构建失败。
  • 双仓库的互补作用:
    • 你那些仅存于jcenter的依赖,Gradle会按仓库顺序查找,找不到再去jcenter拿,完全不影响使用;
    • 像Android Gradle插件、Google服务这类主流依赖,mavenCentral和google()仓库都有备份,就算jcenter临时抽风,也能从其他仓库拉取,保证构建不中断。
  • 配置无冲突:你提供的双仓库配置完全兼容现有项目,Gradle查找依赖时会按声明顺序依次检索,找到匹配的就停止,不会出现重复拉取或冲突问题。

额外建议:

  1. 别一直依赖jcenter,定期检查你的专属依赖是否已经迁移到mavenCentral,一旦有迁移版本,及时替换,彻底摆脱对jcenter的依赖才是长久之计。
  2. 调整仓库顺序:把mavenCentral()放在jcenter()前面,让Gradle优先从mavenCentral找已迁移的依赖,减少对jcenter的依赖次数。

仅使用jcenter()的配置:

buildscript {
    repositories {
        google()
        jcenter()
        
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:7.2.1'
        classpath 'com.google.gms:google-services:4.3.13'
        classpath 'com.google.firebase:firebase-crashlytics-gradle:2.9.1'

    }
}

allprojects {
    repositories {
        google()
        jcenter()
        maven { url "https://jitpack.io" }
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

同时使用jcenter()与mavenCentral()的配置:

buildscript {
    repositories {
        google()
        jcenter()
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:7.2.1'
        classpath 'com.google.gms:google-services:4.3.13'
        classpath 'com.google.firebase:firebase-crashlytics-gradle:2.9.1'

    }
}

allprojects {
    repositories {
        google()
        jcenter()
        mavenCentral()
        maven { url "https://jitpack.io" }
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 19:04:04