-
關(guān)鍵字
api
:使用關(guān)鍵字api
聲明的依賴項表示該模塊將向依賴自己的模塊公開自己依賴的 API。這意味著其他模塊可以使用該依賴項提供的所有公共類和方法,以及該依賴項的傳遞依賴項提供的所有公共類和方法。當(dāng)需要在本模塊和依賴它的其他模塊之間共享代碼時,可以使用關(guān)鍵字api
。例如,如果模塊 A 使用模塊 B,并且模塊 B 使用了關(guān)鍵字
api
聲明某個依賴項,那么模塊 A 也可以使用該依賴項的所有公共 API。這通常用于需要在模塊之間共享代碼的情況,例如庫模塊和應(yīng)用程序模塊之間的依賴關(guān)系。 -
關(guān)鍵字
implementation
:使用關(guān)鍵字implementation
聲明的依賴項表示該模塊將不向依賴自己的模塊公開自己依賴的 API。這意味著該依賴項只對該模塊本身可見,并且不會被傳遞到依賴該模塊的其他模塊。當(dāng)不需要將某個依賴項的 API 公開給其他模塊時,可以使用關(guān)鍵字implementation
。例如,如果模塊 A 使用模塊 B,而模塊 B 使用了關(guān)鍵字
implementation
聲明某個依賴項,那么模塊 A 將無法使用該依賴項的任何公共 API。這通常用于需要在模塊之間隔離依賴關(guān)系的情況,例如應(yīng)用程序模塊和庫模塊之間的依賴關(guān)系。
總之,使用關(guān)鍵字 api
聲明依賴項時,可以將該依賴項的公共 API 與其他模塊共享。而使用關(guān)鍵字 implementation
聲明依賴項時,可以將該依賴項限制在當(dāng)前模塊內(nèi)。
【注意】
??對依賴模塊使用關(guān)鍵字 api
,并不能使本模塊能傳遞性地獲得依賴模塊依賴的所有依賴。對本模塊來說,依賴時無論是使用關(guān)鍵字 api
還是 implementation
都沒有區(qū)別。關(guān)鍵字 api
的作用只再其它模塊依賴本模塊時才會體現(xiàn)。換句話說,如果想令本模塊能傳遞性地獲得依賴模塊的依賴,那么應(yīng)該在依賴模塊的相應(yīng)依賴中使用關(guān)鍵字 api
,而不是在本模塊中使用。
舉個例子。如果項目中有模塊 A、B、C、D,且 A 依賴 B、B 依賴 C、C 依賴 D。在不考慮各個模塊其它依賴的干擾的情況下。
-
如果 B
implementation
C,Cimplementation
D則 B 可以直接引用 C 中的類,但不能引用 D 中的類
-
如果 B
implementation
C,Capi
D則 B 可以直接引用 C、D 中的類
-
如果 A
implementation
B,Bimplementation
C,Capi
D則 A 可以直接引用 B 中的類,但不能引用 C、D 中的類文章來源:http://www.zghlxwxcb.cn/news/detail-434175.html
-
如果 A
api
B,Bimplementation
C,Capi
D則 A 可以直接引用 B 中的類,但不能引用 C、D 中的類
也就是說,如果 B implementation
C,則不管使用什么關(guān)鍵字,都無法通過 B 來依賴 C。文章來源地址http://www.zghlxwxcb.cn/news/detail-434175.html
到了這里,關(guān)于Gradle 模塊依賴中,使用 implementation 與 api 的區(qū)別的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!