gradle中api、implementation和compile的区别
参考:https://www.jianshu.com/p/c1e9f30c88a0
总结:api和implementation就是替代一版本中的compile
看起来这三个关键字的作用是一样的,那么,他们到底有什么区别呢?
api和compile关键字作用效果是一样的,使用时可以互相替换。实际上,api关键字是用来替代compile关键字的,因为compile关键字将来会被弃用。在高版本的gradle,使用compile关键字会报错并提示使用api关键字代替
在同一个module下,implementation和compile的使用效果相同,但是在不同module下,就会有所区别了。举个例子,在项目中有一个名为action的module,其gradle配置文件中引用了两个包:
implementation 'com.android.support:appcompat-v7:26.1.0'
compile 'com.android.support:design:26.1.0'
然后在app module中引入action module:
compile project(':action')
如果此时你尝试在app module中引入action module在gradle中配置的两个maven库,你会发现,使用implementation关键字的appcompat-v7包无法在app module中使用,而使用compile关键字的design包则可以使用。
这样,两个关键字的区别就显而易见了,api或compile关键字引用的包对于其他module来说是可见的,而implementation关键字引用的包对于其他module来说是不可见的。
作者:我啊翔1314
链接:https://www.jianshu.com/p/c1e9f30c88a0
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。