gradle 从 3.4 开始,compile 已经被废弃了,取而代之的是 api | implementation,俩个我们都可以用,但是肯定还是有区别的:

  • api - 本地依赖时依赖不隔离,但是编译慢
  • implementation - 本地依赖时依赖隔离,编译快

我们从 依赖隔离 | 编译速度 2个角度来看 api | implementation


依赖隔离

实际开始中我们有2种依赖方式:本地 project 依赖 | 远程 maven 依赖

我们举这样一个例子 app module A 依赖 module B ,module B 又依赖了 module C ,module C 又依赖了 module D

1. 本地 project 依赖

  • api - A -> D 要是都是 api 的本地依赖方式,那么 A 中可以使用 B,C,D 的 API
  • implementation - A -> D 要是都是 implementation 的本地依赖方式,那么 A 就只能使用 B 的 API,C,D 的 API 是找不到的

2. 远程 maven 依赖

  • implementation 就没代码隔离的作用了,B,C,D 的 API A 都能使用

3. 远程和本地依赖混用

  • 若 A-> B -> C -> D 之间都是远程依赖,implementation 就起不到代码隔离的作用了,B,C,D 的 API A 都能使用
  • 若 C -> D 之间是远程依赖,但 A-> B -> C 之间是本地依赖, 使用 implementation 时,B 可以拿到 D 的 api,但是 A 就拿不到 D 的 api 了

编译速度

在本地依赖时 implementation 可以起到代码隔离的作用,自然编译的速度就快,还是 A-> B -> C -> D 举例,若是 D 更新了,那么只有 C,D 是需要重新编译的。但是一旦我们使用了 API 的依赖方式,那么 ABCD 都需要重新编译

api 与 implementation 的区别相关推荐

  1. api与implementation的区别

    一.从3.4版本的gradle开始,compile已经被api与implementation取代,官网也给出了三者之间的区别: 图1.api与implementation的区别 从官网介绍可以看出,i ...

  2. api网关和esb区别_具有ESB,API管理和Now .. Service Mesh的应用程序网络功能。

    api网关和esb区别 我最近谈论了微服务模式的演变,以及来自Lyft的Envoy之类的服务代理如何帮助将弹性,服务发现,路由,指标收集等责任推到应用程序下一层. 否则,我们冒着希望并祈祷各种应用程序 ...

  3. 软件开发:API和SDK的区别与联系

    目录 一.API 1.发展由来 2.概念 3.应用案例 4.分类 二.SDK 1.概念 三.API和SDK的区别与联系 一.API 1.发展由来 随着软件规模的日益庞大,常常需要把复杂的系统划分成小的 ...

  4. api 和 implementation的不同点

    api和implementation两种依赖的不同点在于:它们声明的依赖其他模块是否能使用. api:当其他模块依赖于此模块时,此模块使用api声明的依赖包是可以被其他模块使用 implementat ...

  5. API:什么是API?API与interface的区别

    我们都知道,API就是接口,那是什么鬼呢? 1.什么是API? api接口开发,其实和平时开发逻辑差不多:但是也有略微差异: 平时使用mvc开发网站的思路一般是都 由控制器 去 调用模型,模型返回数据 ...

  6. gradle compile mysql_Gradle配置implementation、api与compile的区别

    自Gradle 3.4开始,compile被废弃,取而代之的是implementation和api两个配置项. 掌握这三者的区别实际上就是要清楚什么情况使用implementation替换compil ...

  7. Android Studio3.0中dependencies依赖由compile变为implementation的区别

    前言 Android Studio版本更新至3.0了,更新后,连带着com.android.tools.build:gradle 工具也升级到了3.0.0,在3.0.0中使用了最新的Gralde 4. ...

  8. SDK与API的联系与区别

    在手机App的世界里,法规条文里所谓的"第三方应用或服务"是个看得见摸不着的存在.但事实上,不管是你每天收到的新闻推送,还是促销活动广告,甚至短信验证码,都有可能出自第三方之手. ...

  9. webservice接口和http接口(API接口)的区别

    web service(SOAP)与HTTP接口的区别: 什么是web service? 答:soap请求是HTTP POST的一个专用版本,遵循一种特殊的xml消息格式Content-type设置为 ...

最新文章

  1. linux配置文件为yum,Linux系统配置本地yum源
  2. python流程图-使用Graphviz快速绘制流程图
  3. ERP兵法——从案例透视方法(实施篇上)
  4. winform npoi excel 样式设置
  5. maven-下载源码与javadoc
  6. 目标追踪论文之狼吞虎咽(4):MCCT算法
  7. y470 bios uefi_AMD又能开核?刷完BIOS后性能白给,这次血赚了
  8. 百旺如何看是否清卡_清卡失败增值税未申报或未对比怎么办
  9. Android访问assets本地Json文件
  10. asterisk cdr mysql_asterisk cdr写入mysql为空的解决办法
  11. Ubuntu进行apt-get出现Package xxx is not available,but is referred to by another package错误
  12. 0x00000....蓝屏
  13. 【Galois系统】用于图形分析的轻量级基础架构
  14. 解决 ArchLinux 下中文 Chinese 不能输入 couldnt input 的问题
  15. Ajax --- 客户端与服务器端之间传递数据
  16. C语言%lld、%llu无法正常输出比long long长整数小的数
  17. 前置机应用服务器,web服务器前置机(erp)部署步骤.pdf
  18. 专题-句向量(Sentence Embedding)
  19. 一次短暂的淮安、盐城之旅
  20. python房屋租赁管理系统设计与实现报告_基于web的房屋出租管理系统的设计与开发.doc...

热门文章

  1. Unity vs UE4,虚拟现实开发引擎如何抉择?
  2. oracle心跳线检测,Oracle-RAC集群心跳
  3. Android 使用新浪微博SSO授权
  4. Redis可视化工具Redis Desktop Manage下载与安装
  5. Linux实用操作:小技巧(快捷键)、软件安装、systemctl、软连接、日期时区、IP地址、主机名、网络传输、端口、进程管理、主机状态、环境变量、上传、下载、压缩和解压
  6. HP惠普暗影精灵3_OMEN by HP 17-an013tx,17-an014tx原厂Win10系统原装出厂OEM专用系统
  7. 如何快速做好SEO优化?怎样综合查询seo?
  8. 这一步谷歌晚了百度一年,为做好信息流或将收购twitter
  9. linux如何查看tar的文件,虚拟机:Linux查看tar包文件内容的方法
  10. 成本控制在项目管理中的重要性