Gradle Dependency Management 依赖管理

​​​​

目录

依赖管理介绍

什么是依赖管理

Gradle的依赖管理

依赖解决方案是如何工作的

Dependency Types 依赖类型

Module dependencies 模块依赖

File dependencies 文件依赖

Project dependencies 项目依赖

Gradle API dependency

Repository Types 仓库类型

Flat directory repository

Maven Central repository

JCenter Maven repository

Google Maven repository

Local Maven repository

Custom Maven repositories

Custom Ivy repositories

Supported metadata sources 支持的元数据来源

Supported repository transport protocols 支持的仓库传输协议

参考


 

 

依赖管理介绍

  • 什么是依赖管理

软件项目很少是独立工作的,一个项目通常依赖软件库的可复用功能,或者被分成一个个单独的组件来组成一个系统。依赖管理是一种技术,为了以一种自动化的方式声明、解决和使用项目要求的依赖。

  • Gradle的依赖管理

Gradle已经构建支持依赖管理,并创建了用来解决现代项目中遇到的典型问题的任务。下图是Gradle依赖管理的粗略概述图:

dependency management resolution

  • 依赖解决方案是如何工作的

Gradle得到你的依赖声明和仓库定义后,会尝试通过一个叫做依赖解决方案的进程下载你的所有依赖。下面是这个进程如何工作的粗略大纲:

  • 对于一个要求的依赖,Gradle会尝试查找此依赖指向的模块。每个仓库按顺序被检查。依靠仓库类型,Gradle查找用来描述此模块的元数据文件(.module,.pom或ivy.xml文件),或者直接查找人工制品文件(比如.jar文件)。

如果此依赖被声明的是一个动态版本(比如1.+[1.0,)[1.0, 2.0)),Gradle会在此仓库中选择一个最高的具体版本    (比如:1.2)。

如果此模块的元数据是一个有父POM声明的POM文件,Gradle会尝试为此POM解决每一个父模块。

  • 一旦某个仓库被检查到此模块,Gradle会选择最好的一个来使用。

对于一个 动态版本,一个具体的高版本优先于低版本。

通过模块元数据文件声明的模块优先于只有一个人工制品的模块。

早的仓库中的模块优先于晚的仓库中的模块。

当依赖被声明的是具体的版本,且在仓库中找到了模块元数据文件,就不需要在后面的仓库中继续查找了。

  • 然后从上面选择的相同仓库中,请求此模块的所有人工制品。

Dependency Types 依赖类型

  • Module dependencies 模块依赖

  • 模块依赖是最常用的依赖方式,可以引用一个仓库中的一个模块。

  • implementation group: 'com.tencent.bugly', name: 'crashreport', version: '2.6.6'

  • implementation 'com.tencent.bugly:crashreport:2.6.6'

  • implementation ('com.tencent.bugly:crashreport:2.6.6') { force = true }

  • File dependencies 文件依赖

  • 文件依赖允许你直接添加一个文件集合到配置中,不用添加它们到仓库中。

  • implementation fileTree(dir: "libs", include: ["*.jar","*.aar"])

  • implementation fileTree(dir: "libs", include: ["*.jar"])

  • implementation files('libs/umeng-common-1.4.4.jar')

  • implementation files('libs/a.jar', 'libs/b.jar')

  • implementation (name: 'xiaomi-market-sdk2.8', ext: 'aar')

  • Project dependencies 项目依赖

  • 项目依赖类型主要用于多项目构建。

  • implementation project(':PushSDK')

  • Gradle distribution-specific dependencies 特定分发依赖

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值