gradle之implementation 和compile的区别
Posted Mars-xq
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了gradle之implementation 和compile的区别相关的知识,希望对你有一定的参考价值。
参考:
android gradle依赖:implementation 和compile的区别
2017 年google 后,android studio版本更新至3.0,更新中,连带着com.android.tools.build:gradle 工具也升级到了3.0.0,在3.0.0中使用了最新的Gralde 4.0 里程碑版本作为gradle的编译版本,该版本gradle编译速度有所加速,更加欣喜的是,完全支持Java8。
当然,对于Kotlin的支持,在这个版本也有所体现,Kotlin插件默认是安装的。
在com.android.tools.build:gradle 3.0 以下
版本依赖在gradle 中的声明写法
compile fileTree(dir: 'libs', include: ['*.jar'])
但在3.0后
的写法为
implementation fileTree(dir: 'libs', include: ['*.jar'])
或
api fileTree(dir: 'libs', include: ['*.jar'])
api
指令
完全等同于compile指令,没区别,你将所有的compile改成api,完全没有错。
implement
指令
使用了该命令编译的依赖,它仅仅对当前的Moudle提供接口。
优点:1. 加快编译速度。2. 隐藏对外不必要的接口。
provided
(compileOnly)
只在编译时有效,不会参与打包
可以在自己的moudle中使用该方式依赖一些比如com.android.support,gson这些使用者常用的库,避免冲突。
apk
(runtimeOnly)
只在生成apk的时候参与打包,编译时不会参与,很少用。
testCompile
(testImplementation)
testCompile 只在单元测试代码的编译以及最终打包测试apk时有效。
debugCompile
(debugImplementation)
debugCompile 只在 debug 模式的编译和最终的 debug apk 打包时有效
releaseCompile
(releaseImplementation)
Release compile仅仅针对 Release 模式的编译和最终的 Release apk 打包。
以上是关于gradle之implementation 和compile的区别的主要内容,如果未能解决你的问题,请参考以下文章
gradle中api、implementation和compile的区别
gradle implementation runtimeOnly 和api 区别
Java使用 Gradle 依赖配置compile,implementation和api的区别
Android Gradle 依赖配置:implementation & api
Android Gradle 插件Gradle 依赖管理 ⑧ ( implementation fileTree 引入jar文件依赖 | implementation files 引入文件依赖 )