3

使用 Gradle 插件 3 构建多模块 Android 应用程序,而不是使用 compile 声明依赖项,应该使用 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 而不是使用 implementation 显式声明依赖关系?避免 api 似乎是“节省”。api只是为了方便还是我错过了任何副作用?

4

2 回答 2

1

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

但是,如果您的模块在其公共 API 上使用了一些依赖项,则应将这些依赖项与api配置一起添加,否则您的模块的用户应手动添加这些依赖项。

于 2018-03-02T10:34:38.393 回答
1

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

于 2018-03-02T08:45:47.433 回答