使用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只是为了方便还是我没有任何副作用?
答案 0 :(得分:1)
答案 1 :(得分:1)
一般来说,implementation
建议使用(它将加速项目构建并防止依赖性泄漏)
但是如果你的模块在它的公共API上使用它的某些依赖项,则应该使用api
配置添加这些依赖项,否则模块的用户应该手动添加这些依赖项。