【Android Gradle 插件】Android 依赖管理 ① ( 依赖库匹配 | 依赖库查找顺序及路径 | Gradle 资源库 )
一、依赖库匹配
依赖库匹配 : 依赖库由三部分组成
- 依赖库分组
- 依赖库名称
- 依赖库版本号
只有三者都对上 , 依赖库才能匹配上 , 如
dependencies {
implementation androidx.appcompat:appcompat:1.3.1'
}
依赖库分组为 androidx.appcompat , 依赖库名称为 appcompat , 依赖库版本号为 1.3.1 , 三者由冒号隔开 ;
二、依赖库查找顺序及路径
Android 依赖库查找路径 :
首先 , 查找 本地的 Gradle 缓存依赖库 , 如果找到则直接使用该依赖库 , 进行 Gradle 构建 ; 本地依赖库的缓存路径为 " C:\Users\用户名.gradle\caches\modules-2\files-2.1 " , 如下图所示 , Gradle 构建过程中 , 如果发现本地没有缓存依赖库 , 则自动将依赖库缓存到该目录中 ; 下图中的 Gradle 依赖缓存目录为 C:\Users\octop.gradle\caches\modules-2\files-2.1 , octop 为 Windows 系统用户名 ;
然后 , 如果在 本地 Gradle 依赖库缓存中没有找到该依赖库 , 则到 远程仓库中下载 , 远程仓库在根目录下的 build.gradle 中配置 , 一般配置 google()
, mavenCentral()
, jcenter()
;
allprojects {
repositories {
google()
mavenCentral()
jcenter() // Warning: this repository is going to shut down soon
}
}
Gradle 构建过程中依赖管理如下 :
三、Gradle 资源库
Gradle 构建过程中 , 存储依赖库的地方称为 Gradle 资源库 , 有两种形式 :
- 本地库 : 一般是 " C:\Users\用户名.gradle\caches\modules-2\files-2.1 " 目录 ;
- 远程库 : 一般是
google()
,mavenCentral()
,jcenter()
对应的 Maven 仓库 , 也可以自己设置自建的 Maven 私服地址 ;
Gradle 构建时 , 定位依赖库的过程 , 叫做 依赖解析 ;
- 首先 , 查找本地库 ;
- 然后 , 查找远程库 ;
依赖解析完毕后 , 如果是在远程库中下载的依赖库 , 则将其 缓存到本地库中 , 之后再次构建时 , 就不需要从远程库中下载该依赖库了 ;
定位依赖库时 , 根据 依赖库分组 , 依赖库名称 , 依赖库版本号 , 在 Gradle 资源库中定位依赖库 ;
相关文章
- Android Studio错误提示:Gradle project sync failed. Basic functionality (eg. editing, debugging) will not work properly
- 安卓 android studio 报错 Could not find com.android.tools.build:gradle:3.2.1.
- Unity3d与android通信
- 在服务器上使用 gradle 打包 android 源码
- Android开发中,那些让你相见恨晚的方法、类或接口
- Android Studio系列教程六--Gradle多渠道打包(转载)
- 《Gradle权威指南》--Android Gradle多项目构建
- 【Gradle】Android Studio中Gradle重复依赖的问题(转载请删除括号里的内容)
- 【Android Gradle 插件】Android Studio 工程 Gradle 构建流程 ① ( 触发 Android Studio 工程构建 | Gradle 构建脚本执行顺序 )
- 【Android Gradle 插件】组件化中的 Gradle 构建脚本实现 ⑤ ( 优化 Gradle 构建脚本 | 构建脚本结构 | 闭包定义及用法 | 依赖配置 | android 块配置 )
- 【Android Gradle 插件】Android 依赖管理 ⑥ ( 依赖冲突处理 | transitive 依赖传递设置 | exclude 依赖排除设置 | force 强制指定依赖库 )
- 【Android Gradle 插件】Android 依赖管理 ④ ( 常用依赖配置分析 | implementation 依赖作用 | api 依赖作用 | compileOnly 依赖作用 )
- 【Android Gradle 插件】Gradle 构建机制 ③ ( settings.gradle 生成 Settings 对象 | build.gradle 生成 Project 对象 )
- 【Android Gradle 插件】Gradle 构建工具简介 ① ( Gradle 环境配置 | 官网下载 Gradle 软件包 | 在本地用户目录下查找 | 配置 Gradle 环境变量 )
- 【Android Gradle 插件】自定义 Gradle 插件优化图片 ③ ( 识别 png 图片中的 alpha 通道信息 | png 图片的 IHDR 类型数据块 )
- 【Android Gradle 插件】将自定义 Gradle 插件上传到自建 Maven 仓库 ⑧ ( 设置 Gradle 插件模块 | 将 Gradle 插件上传到自建 Maven 仓库 )
- 【Android Gradle 插件】自定义 Gradle 任务 ⑨ ( 控制 Gradle 执行任务顺序 | Task#finalizedBy 函数 | 控制 Gradle 执行任务顺序示例分析 )
- 【Android Gradle 插件】Gradle 依赖管理 ② ( build.gradle 中的 dependencies 依赖配置 | DependencyHandler#add 方法介绍 )
- 【Android Gradle 插件】 Splits 配置 ① ( BaseExtension#splits 配置 | Splits 配置简介 )
- 【Android Gradle 插件】PackagingOptions 配置 ③ ( merges 属性配置 | excludes 属性配置 )
- 【Android Gradle 插件】PackagingOptions 配置 ② ( PackagingOptions 默认配置简介 | pickFirsts 属性配置 )
- 【Android Gradle 插件】DataBindingOptions 配置 ( BaseExtension#dataBinding 脚配块配置 | DataBindingOptions 属性)
- Android Ant 和 Gradle 打包流程和效率对照