mavenCentral()无法使用jcenter()正常,能否继续使用已废弃的jcenter()
问题解答
报错根因说明
你遇到的403报错是因为依赖的io.kommunicate.sdk:kommunicateui:2.1.8内部引入的flexbox 2.0.1版本原本托管在已经关停的Bintray服务,mavenCentral没有同步该旧版本,jcenter还保留了该版本的历史缓存因此可以拉取成功。
问题1:jcenter废弃后是否可以继续使用
2022年2月1日之后jcenter已停止接收新的组件提交,目前仅保留只读下载功能,已有历史版本的组件仍可正常拉取。但jcenter已无官方运维支持,服务可用性、安全性没有保障,不建议作为长期依赖的仓库源。
问题2:jcenter的最终可用截止日期
官方最初计划2022年2月1日完全关停jcenter,之后调整为无限期保留历史组件的只读下载服务,暂未公布强制关停的最终时间节点。但官方已明确要求所有开发者尽快迁移到mavenCentral、Google Maven等合规仓库,不排除未来随时终止服务的可能。
无需依赖jcenter的修复方案
你可以通过强制指定flexbox高版本的方式解决拉取失败问题,修改模块级build.gradle的依赖配置即可:
dependencies { // 排除kommunicateui内部引入的旧版本flexbox implementation ('io.kommunicate.sdk:kommunicateui:2.1.8') { exclude group: 'com.google.android', module: 'flexbox' } // 引入已托管在mavenCentral的高版本flexbox implementation 'com.google.android.flexbox:flexbox:3.0.0' // 其余原有依赖保持不变 }
修改后重新同步Gradle即可正常拉取所有依赖,无需再引入jcenter源。
内容的提问来源于stack exchange,提问作者Amit Yadav
相关产品推荐
相关产品推荐

