避免api并始终使用实现?

问题描述 投票:3回答:2

使用Gradle插件3构建一个多模块Android应用程序,而不是使用compile one声明一个依赖项应该使用implementation或api。后者基本上像编译一样工作。使用实现,依赖于此模块,依赖项对任何模块都是隐藏的。

所以,假设我有三个模块A,B和C.B依赖于A和C依赖于B和A,如下所示:A < - B < - C(Gradle插件2编译)。使用Gradle插件3我可以使用“api”做同样的事情。如果我使用实现显式声明所有依赖项,如A < - B,A < - C,B < - C,它会有什么不同吗?

提出一点不同:为什么我会使用api而不是使用实现明确声明依赖关系?避免api似乎是“救星”。 api只是为了方便还是我没有任何副作用?

android android-gradle-3.0
2个回答
1
投票

一般来说,implementation建议使用(它将加速项目建设并防止依赖性泄漏)

但是如果你的模块在它的公共API上使用它的某些依赖项,则应该使用api配置添加这些依赖项,否则模块的用户应该手动添加这些依赖项。


1
投票

这是关于传递依赖的。在这里阅读更多:https://medium.com/mindorks/implementation-vs-api-in-gradle-3-0-494c817a6fa

© www.soinside.com 2019 - 2024. All rights reserved.