【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 资源库中定位依赖库 ;

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/326147.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

QT DAY6作业

1.学生管理系统&#xff0c;基于QT的数据库中数据表的增删改查 头文件 #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QSqlDatabase> //数据库管理类 #include <QSqlQuery> //执行sql语句类 #include <QSqlRecord> //数据库记…

工信部颁发的人工智能证书《自然语言与语音处理设计开发工程师》证书到手啦!

工信部颁发的人工智能证书《自然语言与语音处理设计开发工程师》证书拿到手啦&#xff01; 近期正在报考的工信部颁发的人工智能证书还有&#xff1a; 《计算机视觉处理设计开发工程师》中级 2024年1月24日至28日-北京 《自然语言与语音处理设计开发工程师》中级 第二期 20…

定位Linux下写句柄错误问题

编写代码时发现对于以下can 写资源句柄时出现的错误不是很能分析&#xff0c;但是如果将错误码打印出来后&#xff0c;清晰了很多&#xff0c;并且还可以查看。 int Can::Write(const struct can_frame *send_frame) { int result;std::cout << "before write s_ :…

嵌入式系统采用linux系统,怎样保证实时性?

嵌入式系统采用linux系统&#xff0c;怎样保证实时性&#xff1f; 在开始前我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「linux的资料从专业入门到高级教程」&#xff0c; 点个关注在评论区回复“888”之后私信回复“888”&#xff0c;全部无偿共享给大家&am…

跨平台进程/任务管理服务——Meproc的配置

配置 Meproc的配置非常简单&#xff0c;只有以下几个配置选项。 Conf [ip: 0.0.0.0,port: 8606,log_level: debug,log_dir: /tmp,web: [ip: 127.0.0.1,port: 8606,],bootstrap_cmd: , ];ip 是 Meproc 服务监听 HTTP 请求的地址。port 是Meproc服务监听HTTP请求的端口。log_l…

操作系统详解(5.2)——信号(Signal)的题目进阶

系列文章&#xff1a; 操作系统详解(1)——操作系统的作用 操作系统详解(2)——异常处理(Exception) 操作系统详解(3)——进程、并发和并行 操作系统详解(4)——进程控制(fork, waitpid, sleep, execve) 操作系统详解(5)——信号(Signal) 操作系统详解(5.1)——信号(Signal)的相…

网络安全笔记-SQL注入

文章目录 前言一、数据库1、Information_schema2、相关函数 二、SQL注入分类1、联合查询注入&#xff08;UNION query SQL injection&#xff09;语法 2、报错注入&#xff08;Error-based SQL injection&#xff09;报错注入分类报错函数报错注入原理 3、盲注布尔型盲注&#…

kubernetes入门到进阶(6)

打破次元壁&#xff1a;容器该如何与外界互通互联 在前面的几个章节里&#xff0c;我们已经学习了容器&#xff0c;镜像&#xff0c;镜像仓库的概念和用法&#xff0c;也知道了应该如何创建镜像&#xff0c;再以容器的形式启动应用。 不过&#xff0c;用容器来运行busybox、hel…

程序员有哪些接s单的渠道?

这题我会&#xff01;程序员接单的渠道那可太多了&#xff0c;想要接到合适的单子&#xff0c;筛选一个合适的平台很重要。如果你也在寻找一个合适的接单渠道&#xff0c;可以参考以下这些方向。 首先&#xff0c;程序员要对接单有一个基本的概念&#xff1a;接单渠道可以先粗…

DNS在线测试,CA证书

DNS验证方式如何验证 在线测试&#xff1a;DiG GUI - DiG Online, DiG Web Interface, DiG DNS, Google Dig, Online Dig, Dig Tool letsencrypt证书申请&#xff1a; https://letsencrypt.osfipin.com/user-0408/order/detail?id63mvyl 锐成云-管理中心 第一步&#xff1a…

EV7050AN(压控锯振荡器) 输出:LV-PECL /低相位抖动

低相位抖动18 fs类型。* 3频率范围 750MHz ~ 1100MHz1500MHz ~ 2200MH函数输出关闭(OE) /待机(ST)电源电压3.3 V类型绝对拉力范围50 10 6最小/30 10 6分钟。外形尺寸7.0 5.0 1.6 (t) mm输出LV-PECL应用程序OTN(40GbE,100GbE,400GbE)&#xff0c;高速adc和dac&#xff0c;测…

程序在FLASH中的执行效率比RAM中高?

背景 通常的说法是&#xff0c;程序在RAM中运行的效率比FLASH中的运行效率高&#xff0c;但是你见过程序在FLASH中运行比在RAM中运行效率高的芯片吗&#xff1f; 1 系统结构简介 想要了解芯片是如何取指的&#xff0c;需要对MCU系统的结构有一定的了解&#xff0c;特别是对I…

Access数据库模糊查询

Access数据库模糊查询的方法 1.使通配符: 在 Access 数据库中&#xff0c;有两种通配符可供使用&#xff0c;分别是"?"和"*"。 "?"表示匹配一个字符。 "*"表示匹配任意多个字符 1例如&#xff1a;如果要查询姓氏以"王"开…

jsonschema,一个超强的 Python 库!

更多资料获取 &#x1f4da; 个人网站&#xff1a;ipengtao.com 大家好&#xff0c;今天为大家分享一个超强的 Python 库 - jsonschema。 Github地址&#xff1a;https://github.com/python-jsonschema/jsonschema JSON&#xff08;JavaScript Object Notation&#xff09;是…

windows server 2019 云服务器看不见硬盘的解决方案

刚拿的windows server 服务器看不见硬盘&#xff0c;这是因为没有初始化数据盘的原因。 解决方案如下&#xff1a; 单击“服务器管理器”仪表盘。 弹出“服务器管理器”窗口&#xff0c;如图1所示。 “服务器管理器”页面右上方选择“工具 > 计算机管理”。 弹出“计算机管…

零花钱也能设计精美网页!推荐几个免费设计素材站点!

UI设计师最怕什么&#xff1f; 没有创意&#xff0c;没有灵感&#xff0c;没有思路&#xff01; 在哪里可以得到idea&#xff1f;别担心&#xff0c;往下看&#xff01; 你知道网络有多大&#xff0c;你想要什么吗&#xff1f;今天&#xff0c;我想和大家分享一些宝藏网页设…

二叉树的深度遍历

目录 深度优先遍历&#xff1a; 二叉树节点定义&#xff1a; 递归法&#xff1a; 前序 中序 后序 迭代法&#xff1a; 前序 中序 后序 迭代法&#xff08;统一写法&#xff09; 前序 中序 后序 广度优先遍历&#xff1a; 二叉树的遍历方法包括两种&#xff1a…

城市酷选模式开发(门店免单排队返利系统)

城市酷选模式开发&#xff08;门店免单排队返利系统&#xff09;【阿巴】城市酷选商城开发免单排队返利小程序搭建、城市酷选模式开发、城市酷选系统商城开发、城市酷选APP系统开发、城市酷选 每经AI快讯&#xff0c;有投资者在投资者互动平台提问&#xff1a;“以塑代钢”已成…

CXYGZL-程序员工作流,持续迭代升级中

概述 现在开源的工作流引擎&#xff0c;基本都是以BPMN.js为基础的&#xff0c;导致使用门槛过高&#xff0c;非专业人员无法驾驭。本工作流借鉴钉钉/飞书的方式&#xff0c;以低代码方式降低用户使用门槛&#xff0c;即使是普通企业用户也可以几分钟内就能搭建自己的工作流引…

Java 异常处理

目录 一.Exception类的继承关系二.运行时异常和非运行时异常的区别三.内置异常类四、内置异常方法五、捕获异常六、抛出异常七、try-with-resources 一.Exception类的继承关系 二.运行时异常和非运行时异常的区别 运行时异常都是RuntimeException类及其子类异常&#xff0c;如…
最新文章