api与implementation的区别
implementation可以让module在编译时隐藏自己使用的依赖,但是在运行时这个依赖对所有模块是可见的。从而减少build time
而api与compile一样,无法隐藏自己使用的依赖。
6988326-7ee8cefdef81767e.jpg
1、如果mylibrary3使用api依赖mylibrary4,那么当mylibrary4发生变化时,编译需要重新编译mylibrary4、mylibrary3、mylibrary1;
2、如果mylibrary3使用implemention依赖mylibrary4,那么当mylibrary4发生变化时,编译需要重新编译mylibrary4、mylibrary3,这个时候不需要编译mylibrary1,这样就可以节约build time;
provided
Gradle compile:
jar包/依赖代码 在编译的时候需要依赖,在运行的时候也需要
Gradle provided:
jar包/依赖代码 仅在编译的时候需要,但是在运行时不需要依赖
网友评论