避免api并始终使用实现?

时间:2018-03-02 08:30:55

标签: android android-gradle-3.0

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

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

,它会有什么不同吗?

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

2 个答案:

答案 0 :(得分:1)

关于传递依赖性。在此处阅读更多内容:https://medium.com/mindorks/implementation-vs-api-in-gradle-3-0-494c817a6fa

答案 1 :(得分:1)

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

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