implementation不可以依赖传递,但是compile可以依赖传递
在3.0版本中,compile 指令被标注为过时方法,而新增了两个依赖指令,一个是implement 和api,这两个都可以进行依赖添加,但是有什么区别呢?
api 指令
完全等同于compile指令,没区别,你将所有的compile改成api,完全没有错。
implement指令
我们项目中会遇到module引用的情况,比如现在项目中有app,module1,module2三个module,要在module1中依赖module2的代码,如下所示:
dependencies {
...
compile project(':module2')
}
设现在的需求是这样的,app依赖module1,module1依赖module2,那么在app内能调用module2的参数和方法吗?
如果是compile依赖的确实可以做到依赖传递,但是AS 3.0开始推荐使用implementation取代了compile,依赖传递失效了。
由于之前的项目统一 用compile依赖,导致的情况就是模块耦合性太高,不利于项目拆解,使用 implementation之后虽然使用起来复杂了但是做到 降低偶合性、提高安全性
Android Studio 3.0中,compile被标记为过时,引入了api和implementation作为替代。api与compile功能相同,但implementation不支持依赖传递。当module间依赖时,如app->module1->module2,使用compile可在app中调用module2,但使用implementation则无法进行依赖传递。Google建议首选implementation,如有需要再改用api,以提高编译速度。
最低0.47元/天 解锁文章
1838

被折叠的 条评论
为什么被折叠?



