![](/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.