本篇文章已授權(quán)為微信公眾號(hào) code小生 發(fā)布
前言
今天在看大牛 Github 項(xiàng)目源碼的時(shí)候,發(fā)現(xiàn)他們 build.gradle 文件的寫法很有意思, 仔細(xì)研究了一下,發(fā)現(xiàn)自己以前使用 Gradle 來依賴管理的姿勢(shì)實(shí)在是太 Low 了,所以整理了一下今天解鎖的 Gradle 依賴新姿勢(shì),分享給大家
相信現(xiàn)在大部分人都在使用 Gradle 來進(jìn)行依賴管理,不得不說,Gradle 真的相當(dāng)簡(jiǎn)潔、好用,舉個(gè)例子,如果我們想依賴 okhttp,直接
compile 'com.squareup.okhttp3:okhttp:3.8.1'
然后就能在我們的項(xiàng)目中使用 okhttp 進(jìn)行網(wǎng)絡(luò)請(qǐng)求了。
不過,不知道你們有沒有想過一個(gè)問題,如果 okhttp 版本升級(jí)了,那該怎么辦?你可能會(huì)說直接在 build.gradle 進(jìn)行修改就行啊,這當(dāng)然是個(gè)解決方法。如果只有這個(gè)地方要進(jìn)行修改的話,問題倒是不大。
但是,如果你的項(xiàng)目里面有好幾個(gè) module 呢,現(xiàn)在 APP 的規(guī)模越來越大,項(xiàng)目里面有多個(gè) module 是非常正常的,每一次的版本更新,你都要修改所有的地方,麻煩不說,還可能會(huì)遺漏掉某些地方。所以分享一下我今天解鎖的 Gradle 依賴新姿勢(shì),徹底解決我上面所講的問題。
一、在根目錄添加 dependencies.gradle 文件
所謂的「根目錄」就是指項(xiàng)目中最外層的文件夾,以我的項(xiàng)目作為例子

然后在 dependencies.gradle 中配置我們?cè)驹?build.gradle 中依賴的內(nèi)容

可以看到在 dependencies.gradle 中主要是 android 和依賴的一些基本配置,這個(gè)文件中的內(nèi)容都是 gradle 支持的語法。android 中主要是 APP 的一些基本配置,如 SDK 的版本。dependencies 中主要是我們依賴的第三方庫,你可以把你經(jīng)常使用的第三方庫都放在里面,有了這個(gè)配置文件,以后所有 module 以及我們的主項(xiàng)目都統(tǒng)一在這里讀取就行了。
二、在 build.gradle 讀取配置文件的內(nèi)容
在修改 app 目錄中 build.gradle 中的內(nèi)容之前,我們先修改一下「根目錄」中 build.gradle 的內(nèi)容,讓所有的 module 以及主項(xiàng)目都可以從這里讀取內(nèi)容

最后修改一下 app 目錄 中 build.gradle 文件的內(nèi)容

應(yīng)該記得我們?cè)?dependencies.gradle 中有 android 和 dependencies 兩部分的內(nèi)容吧,我們只要引用
rootProject.ext.android.xxx
或者
root.Project.ext.dependencies["xxx"]
就可以讀取 dependencies.gradle 中的內(nèi)容了。
以上便是我今天解鎖的 Gradle 依賴新姿勢(shì),分享給大家,希望對(duì)大家有所幫助。