【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() ;

<span style="color:#000000"><span style="background-color:#2d2d2d"><code class="language-java">allprojects <span style="color:#999999">{</span></code></span></span>

 

allprojects {
    repositories {
        google()
        mavenCentral()
        jcenter() // Warning: this repository is going to shut down soon
    }
}

 

三、Gradle 资源库

Gradle 构建过程中 , 存储依赖库的地方称为 Gradle 资源库 , 有两种形式 :

本地库 : 一般是 " C:\Users\用户名.gradle\caches\modules-2\files-2.1 " 目录 ;
远程库 : 一般是 google() , mavenCentral() , jcenter() 对应的 Maven 仓库 , 也可以自己设置自建的 Maven 私服地址 ;
Gradle 构建时 , 定位依赖库的过程 , 叫做 依赖解析 ;

首先 , 查找本地库 ;
然后 , 查找远程库 ;
依赖解析完毕后 , 如果是在远程库中下载的依赖库 , 则将其 缓存到本地库中 , 之后再次构建时 , 就不需要从远程库中下载该依赖库了 ;

定位依赖库时 , 根据 依赖库分组 , 依赖库名称 , 依赖库版本号 , 在 Gradle 资源库中定位依赖库 ;

 

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-17 09:56:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-17 09:56:03       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-17 09:56:03       82 阅读
  4. Python语言-面向对象

    2024-01-17 09:56:03       91 阅读

热门阅读

  1. 快速了解spring boot中的@idempotent注解

    2024-01-17 09:56:03       50 阅读
  2. GPT实战系列-实战Qwen在Cuda 12+24G部署方案

    2024-01-17 09:56:03       52 阅读
  3. 【Leetcode】454. 四数相加 II

    2024-01-17 09:56:03       52 阅读
  4. TensorFlow

    2024-01-17 09:56:03       64 阅读
  5. Linux内核--网络协议栈(二)整体介绍

    2024-01-17 09:56:03       42 阅读
  6. 使用ShopifySharp实现Shopify超简单对接(C#)

    2024-01-17 09:56:03       52 阅读
  7. Git 提交前缀规范

    2024-01-17 09:56:03       56 阅读