使用 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只是为了方便还是我错过了任何副作用?