implementation 表示依赖,即 只依赖不打包进来。 api 表示打包,即 不仅依赖还打包进来,这样上层就不用重复依赖。 注意:这里的打包是便于理解,是指打包依赖关系而不是打包源代码,也就是说将依赖暴露给上层。 下面举例说明: app主模块下的依赖: dependencies { implementation project(path: ':home') } //依赖home...
此时,LibD依然可以直接使用LibY中的对外Api,也就是说,此时即使:LibX项目通过implementation引入的:LibY,但:LibY对:LibD 依然具有依赖传递,具有可见性。 此即官方文档中提及的it's letting Gradle know that的内在含义。 总结: implementation和api依赖配置主要是控制依赖模块对上层模块的依赖关系传递及可见性,在实际进...
api和implementation两种依赖的不同点在于:它们声明的依赖其他模块是否能使用。 api:当其他模块依赖于此模块时,此模块使用api声明的依赖包是可以被其他模块使用。 implementation:当其他模块依赖此模块时,此模块使用implementation声明的依赖包只限于模块内部使用,不允许其他模块使用。 api:跟 2.x 版本的 compile完全相同 ...
api 指令 完全等同于compile指令,没区别,你将所有的compile改成api,完全没有错。 implementation指令 这个指令的特点就是,对于使用了该命令编译的依赖,对该项目有依赖的项目将无法访问到使用该命令编译的依赖中的任何程序,也就是将该依赖隐藏在内部,而不对外部公开。 简单的说,就是使用implementation指令的依赖不会传递。
区别 而implementation和api之间的区别,主要是: implementation:该依赖方式所依赖的库不会传递。这种依赖关系,当其他module依赖该module时,无法使用该module下使用implementation所依赖的库 api:该依赖方式所依赖的库会传递。这种依赖关系,当其他module依赖该module时,可以使用该module下使用api所依赖的库 ...
在高版本的gradle,使用compile关键字会报错并提示使用api关键字代替: 使用compile提示错误.png 在同一个module下,implementation和compile的使用效果相同,但是在不同module下,就会有所区别了。举个例子,在项目中有一个名为action的module,其gradle配置文件中引用了两个包: implementation 'com.android.support:appcompat-...
Android Studio 3.x gradle依赖方式(implementation、api、provided 等)的区别,程序员大本营,技术文章内容聚合第一站。
gradle 从 3.4 开始,compile 已经被废弃了,取而代之的是api|implementation,俩个我们都可以用,但是肯定还是有区别的: api- 本地依赖时依赖不隔离,但是编译慢 implementation- 本地依赖时依赖隔离,编译快 我们从依赖隔离|编译速度2个角度来看api|implementation ...
当gradle插件升级到3.0.0及以上后,我们会发现在gradle中添加依赖的时候,会推荐你使用implementation或者api,而不再推荐你使用compile,今天就来简单介绍下这两者的使用与区别! classpath 'com.android.tools.build:gradle:3.0.0' 在新建一个Android工程的时候,build.gradle中的依赖默认为implementation,而不是之前的compil...