implementation、api、compileOnly區(qū)別

為了以后查看方便,特在此記錄,參考文章:https://blog.csdn.net/yuzhiqiang_1993/article/details/78366985?locationNum=6&fps=1

2.x 和 3.X版本依賴方式的比較:

2.X版本的依賴方式
3.X版本的依賴方式

替代關(guān)系:

compile依賴關(guān)系已被棄用,被implementation和api替代;
provided被compile only替代;
apk被runtime only替代;
api:跟2.x版本的 compile完全相同。

implementation和api區(qū)別:

implementation:只能在內(nèi)部使用此模塊,比如我在一個libiary中使用implementation依賴了gson庫,然后我的主項目依賴了libiary,那么,我的主項目就無法訪問gson庫中的方法。這樣的好處是編譯速度會加快,推薦使用implementation的方式去依賴,如果你需要提供給外部訪問,那么就使用api依賴即可

provided(compileOnly)作用:

只在編譯時有效,不會參與打包
可以在自己的moudle中使用該方式依賴一些比如com.android.support,gson這些使用者常用的庫,避免沖突。

apk(runtimeOnly)作用:

只在生成apk的時候參與打包,編譯時不會參與,很少用。

testCompile(testImplementation)作用:

testCompile 只在單元測試代碼的編譯以及最終打包測試apk時有效。

debugCompile(debugImplementation)作用:

debugCompile 只在debug模式的編譯和最終的debug apk打包時有效

releaseCompile(releaseImplementation)作用:

Release compile 僅僅針對Release 模式的編譯和最終的Release apk打包。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容