AndroidStudio 管理依賴(lài)之BuildSrc——依賴(lài)Autocomplete

傳統(tǒng)的依賴(lài)管理

過(guò)去通過(guò)gradle的ext屬性來(lái)維護(hù)依賴(lài)庫(kù)一個(gè)map

ext {
    dependencies = [
           "appcompat"       : "androidx.appcompat:appcompat:1.2.0",
           "recyclerview"      : "androidx.recyclerview:recyclerview:1.2.0",
    ]
}

然后再相應(yīng)的module中添加具體的引用

implementation rootProject.ext.dependencies[appcompat]
implementation rootProject.ext.dependencies[recyclerview]

這種方法實(shí)現(xiàn)了依賴(lài)庫(kù)的集中管理稼病,但是缺少I(mǎi)DE的支持在添加依賴(lài)庫(kù)的時(shí)候IDE不能自動(dòng)補(bǔ)全

buildSrc方式管理依賴(lài)庫(kù)

  • 什么是buildSrc
當(dāng)你運(yùn)行Gradle時(shí)趁桃,它會(huì)檢查項(xiàng)目中是否存在一個(gè)名為buildSrc的目錄。
然后Gradle會(huì)自動(dòng)編譯并測(cè)試這段代碼牡肉,并將其放入構(gòu)建腳本的類(lèi)路徑中眯漩。您不需要提供任何進(jìn)一步的操作提示秒际。
  • 使用buildSrc
  1. 創(chuàng)建與app同級(jí)的文件夾buildSrc
  2. 在buildSrc文件夾里創(chuàng)建名為build.gradle.kts的文件,并添加如下代碼
 plugins {
     `kotlin-dsl`
 }

 repositories {
       mavenCentral()
 }
  1. 在buildSrc的module中創(chuàng)建src了赵、main慎宾、java文件夾丐吓,目錄格式如下圖


    微信截圖_20210716154051.png
  2. 在java目錄中創(chuàng)建類(lèi)Deps.kt 并添加相應(yīng)的依賴(lài)管理

object V{
    const val appcompat="1.2.0"
    const val retrofit="2.9.0"
    const val material="1.3.0"
}

object Deps {
    const val appcompat= "androidx.appcompat:appcompat:${V.appcompat}"
    const val retrofit= "com.squareup.retrofit2:retrofit:${V.retrofit}"
    const val material= "com.google.android.material:material:${V.material}"
}
  1. 在具體的mudole中引用
    mudole_one/build.gradle
dependencies {
    implementation Deps.appcompat
    implementation Deps.material
    implementation Deps.retrofit
}

mudole_two/build.gradle

dependencies {
    implementation Deps.appcompat
    implementation Deps.material
    implementation Deps.retrofit
}

最終實(shí)現(xiàn)如下效果


動(dòng)畫(huà).gif

總結(jié)

buildSrc 方式管理依賴(lài)大大增加了依賴(lài)管理的便捷性和易用性

優(yōu)點(diǎn)
  • 共享 buildSrc 庫(kù)工件的引用,全局管理依賴(lài)
  • 支持 AndroidStudio 自動(dòng)補(bǔ)全璧诵,實(shí)現(xiàn)Autocomplete
  • 支持依賴(lài)庫(kù)的點(diǎn)擊跳轉(zhuǎn)
缺點(diǎn)
A change in buildSrc causes the whole project to become out-of-date. 
Thus, when making small incremental changes, the --no-rebuild command-line option is often helpful to get faster feedback.
Remember to run a full build regularly or at least when you’re done, though.
buildSrc的更改會(huì)導(dǎo)致整個(gè)項(xiàng)目過(guò)時(shí)汰蜘,因此,在進(jìn)行小的增量更改時(shí)之宿,
-- --no-rebuild命令行選項(xiàng)通常有助于獲得更快的反饋族操。不過(guò),請(qǐng)記住要定期或至少在完成后運(yùn)行完整版本
  • 缺點(diǎn)就是buildSrc 依賴(lài)更新將重新構(gòu)建整個(gè)項(xiàng)目
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末比被,一起剝皮案震驚了整個(gè)濱河市色难,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌等缀,老刑警劉巖枷莉,帶你破解...
    沈念sama閱讀 206,968評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異尺迂,居然都是意外死亡笤妙,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén)噪裕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)蹲盘,“玉大人,你說(shuō)我怎么就攤上這事膳音≌傧危” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 153,220評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵祭陷,是天一觀的道長(zhǎng)苍凛。 經(jīng)常有香客問(wèn)我,道長(zhǎng)兵志,這世上最難降的妖魔是什么醇蝴? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,416評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮想罕,結(jié)果婚禮上悠栓,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好闸迷,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,425評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布嵌纲。 她就那樣靜靜地躺著,像睡著了一般腥沽。 火紅的嫁衣襯著肌膚如雪逮走。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,144評(píng)論 1 285
  • 那天今阳,我揣著相機(jī)與錄音师溅,去河邊找鬼。 笑死盾舌,一個(gè)胖子當(dāng)著我的面吹牛墓臭,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播妖谴,決...
    沈念sama閱讀 38,432評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼窿锉,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了膝舅?” 一聲冷哼從身側(cè)響起嗡载,我...
    開(kāi)封第一講書(shū)人閱讀 37,088評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎仍稀,沒(méi)想到半個(gè)月后洼滚,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,586評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡技潘,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,028評(píng)論 2 325
  • 正文 我和宋清朗相戀三年遥巴,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片享幽。...
    茶點(diǎn)故事閱讀 38,137評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡铲掐,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出琉闪,到底是詐尸還是另有隱情迹炼,我是刑警寧澤砸彬,帶...
    沈念sama閱讀 33,783評(píng)論 4 324
  • 正文 年R本政府宣布颠毙,位于F島的核電站,受9級(jí)特大地震影響砂碉,放射性物質(zhì)發(fā)生泄漏蛀蜜。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,343評(píng)論 3 307
  • 文/蒙蒙 一增蹭、第九天 我趴在偏房一處隱蔽的房頂上張望滴某。 院中可真熱鬧,春花似錦、人聲如沸霎奢。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,333評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)幕侠。三九已至帝美,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間晤硕,已是汗流浹背悼潭。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,559評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留舞箍,地道東北人舰褪。 一個(gè)月前我還...
    沈念sama閱讀 45,595評(píng)論 2 355
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像疏橄,于是被迫代替她去往敵國(guó)和親占拍。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,901評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容