![](/img/trans.png)
[英]Android Gradle library dependency with library dependency using Nexus
[英]When library dependency is added using 'api' does not provide access to their library which is declared using 'implementation' in Gradle?
解释可以在Java库插件的官方文档中找到,特别是API和实现分离一章:
该插件公开了两个可用于声明依赖项的配置:api 和 implementation。 api 配置应该用于声明由库 API 导出的依赖项,而 implementation 配置应该用于声明组件内部的依赖项。
API 配置的主要思想是避免库模块的内部依赖项泄漏到库消费者类路径中。
在您的情况下, LibB
被视为对LibA
内部依赖,因为它是在implementation
配置中定义的,因此您LibB
直接在App
模块中访问LibB
。
如果您需要从App
使用库LibB
,那么只需使用api
或implementation
配置声明从App
到LibB
的直接依赖项。
api
依赖项本质上仅可传递到其上游项目。 因此,在您的情况下,如果您希望LibB暴露给App ,那么您可以拥有这样的依赖项 -
应用与
implementation
依赖于力霸与力霸与api
的依赖于LibB
这将允许LibB传递给App
但是,应该谨慎使用api
依赖项,并且仅在需要时使用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.