Android项目级build.gradle中google()与mavenCentral()的区别是什么
google()和mavenCentral()是Android Gradle构建中两个完全独立的依赖仓库,核心区别如下:
1. google() 仓库
- 运营主体:Google官方专属仓库
- 存储内容:仅提供Google官方推出的Android开发相关依赖,包括Android Gradle构建插件、AndroidX系列组件、Jetpack生态工具、Google Play服务SDK、Firebase系列SDK等
- 语法本质:是Gradle 4.0及以上版本提供的简化写法,等价于完整配置
maven { url 'https://maven.google.com' }
2. mavenCentral() 仓库
- 运营主体:由Sonatype公司运营的全球最大公共开源Maven中央仓库,是Java/Android生态最通用的第三方依赖托管平台
- 存储内容:收纳了绝大多数非Google官方的开源Java/Kotlin/Android依赖,比如常用的OkHttp、Retrofit、Glide、RxJava等第三方开源库均托管在此仓库
- 语法本质:是Gradle 6.8及以上版本提供的简化写法,等价于完整配置
maven { url 'https://repo1.maven.org/maven2/' },目前已完全替代停止服务的jcenter仓库成为开源依赖的首选托管仓库
为什么需要同时配置两个仓库
Android项目的依赖天然来自两个渠道,因此项目级Gradle文件中同时配置两个仓库是常规操作:
buildscript { repositories { google() mavenCentral() } dependencies { classpath "com.android.tools.build:gradle:7.0.0" } } task clean(type: Delete) { delete rootProject.buildDir }
Google官方的组件只能从google()仓库拉取,第三方开源组件只能从mavenCentral()拉取。Gradle构建时会按配置的仓库顺序依次检索所需依赖,缺少任意一个仓库都会导致对应依赖拉取失败,出现构建报错。
内容的提问来源于stack exchange,提问作者Rawnak Yazdani
相关产品推荐
相关产品推荐

