使用 Gradle 插件 3 构建多模块 Android 应用程序,而不是使用编译声明依赖项,应该使用实现或 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 只是为了方便还是我遗漏了任何副作用?
最佳答案
一般来说,推荐使用implementation
(它会加速项目构建并防止依赖泄漏)
但是,如果您的模块在其公共(public) API 中使用了一些依赖项,则应使用 api
配置添加这些依赖项,否则您模块的用户应手动添加这些依赖项。
关于android - 避免使用 api 并始终使用实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49065335/