Gradle依賴沖突解決方式

問題

在Android開發(fā)中盖腿,相信遇到關(guān)于版本依賴的問題的同學(xué)有不少。雖然Android Studio一般都會(huì)自動(dòng)幫我們?nèi)ブ兀怯袝r(shí)候去重失敗了還是需要手動(dòng)處理翩腐。在這里總結(jié)下自己長期遇到的各類問題的解決方式鸟款。
為了方便看效果,我們改下gradle解決策略為有版本沖突時(shí)自動(dòng)失敗茂卦,如下:

configurations.all {
    resolutionStrategy {
        failOnVersionConflict()
    }
}

當(dāng)我們同時(shí)依賴不同版本rxjava時(shí)編譯會(huì)報(bào)錯(cuò)如下:


gradle_fail.jpg

解決方案

1.統(tǒng)一版本管理

當(dāng)一個(gè)project下有多個(gè)module或library時(shí)很適合使用統(tǒng)一版本管理方式

  • 創(chuàng)建config.gradle
    在project目錄下創(chuàng)建config.gradle文件何什,將需要統(tǒng)一管理的加在里面,如下:
ext {
    //Dependencies
    supportLibraryVersion = '25.3.1'
    okHttpVersion = '3.8.0'
    domainTestDependencies = [
            appcompatv7: "com.android.support:appcompat-v7:${supportLibraryVersion}",
            okHttp     : "com.squareup.okhttp3:okhttp:${okHttpVersion}"
    ]
}
  • 在project下的build.gradle開頭加入
apply from: "config.gradle"
  • module或library下引用版本
    implementation rootProject.ext.dependencies["appcompatv7"]
    implementation rootProject.ext.dependencies["okHttp"]

2.去除沖突依賴

當(dāng)我們使用網(wǎng)上的一些開源庫等龙,并且自己項(xiàng)目里面也用到了不同的版本庫時(shí)处渣,我們可以在依賴的開源庫中用exclude去除重復(fù)。
假如我們依賴的庫是com.carlos.test:Test:1.0.0,里面用到了rxjava和我們module用到了不同版本而咆,那么我們可以這樣做:

    implementation ('com.carlos.test:Test:1.0.0') {
        exclude group: "io.reactivex.rxjava2",module: "rxjava"
        // exclude group: "io.reactivex.rxjava2:rxjava:2.1.11"
    }
    implementation 'io.reactivex.rxjava2:rxjava:2.1.13'

group為庫的groupId霍比,module為artifactId。我們也可以直接用注釋中的方法指定具體的版本暴备。

3.強(qiáng)制使用某版本依賴

我們也可以直接在策略里面強(qiáng)制使用某版本依賴

configurations.all {
    resolutionStrategy {
        force 'io.reactivex.rxjava2:rxjava:2.1.13'
    }
}

這樣就是強(qiáng)制rxjava使用2.1.13版本了悠瞬。

總結(jié)

三種方式各有不同場景,適合自己的是最好的涯捻,如有遺漏或錯(cuò)誤歡迎指出浅妆。希望能互相交流學(xué)習(xí)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末障癌,一起剝皮案震驚了整個(gè)濱河市凌外,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌涛浙,老刑警劉巖康辑,帶你破解...
    沈念sama閱讀 221,820評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異轿亮,居然都是意外死亡疮薇,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,648評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門我注,熙熙樓的掌柜王于貴愁眉苦臉地迎上來按咒,“玉大人,你說我怎么就攤上這事但骨±撸” “怎么了?”我有些...
    開封第一講書人閱讀 168,324評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵奔缠,是天一觀的道長掠抬。 經(jīng)常有香客問我,道長校哎,這世上最難降的妖魔是什么两波? 我笑而不...
    開封第一講書人閱讀 59,714評(píng)論 1 297
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上雨女,老公的妹妹穿的比我還像新娘。我一直安慰自己阳准,他們只是感情好氛堕,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,724評(píng)論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著野蝇,像睡著了一般讼稚。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上绕沈,一...
    開封第一講書人閱讀 52,328評(píng)論 1 310
  • 那天锐想,我揣著相機(jī)與錄音,去河邊找鬼乍狐。 笑死赠摇,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的浅蚪。 我是一名探鬼主播藕帜,決...
    沈念sama閱讀 40,897評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼惜傲!你這毒婦竟也來了洽故?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,804評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤盗誊,失蹤者是張志新(化名)和其女友劉穎时甚,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體哈踱,經(jīng)...
    沈念sama閱讀 46,345評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡荒适,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,431評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了嚣鄙。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片吻贿。...
    茶點(diǎn)故事閱讀 40,561評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖哑子,靈堂內(nèi)的尸體忽然破棺而出舅列,到底是詐尸還是另有隱情,我是刑警寧澤卧蜓,帶...
    沈念sama閱讀 36,238評(píng)論 5 350
  • 正文 年R本政府宣布帐要,位于F島的核電站,受9級(jí)特大地震影響弥奸,放射性物質(zhì)發(fā)生泄漏榨惠。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,928評(píng)論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望赠橙。 院中可真熱鬧耽装,春花似錦、人聲如沸期揪。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,417評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽凤薛。三九已至姓建,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間缤苫,已是汗流浹背速兔。 一陣腳步聲響...
    開封第一講書人閱讀 33,528評(píng)論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留活玲,地道東北人涣狗。 一個(gè)月前我還...
    沈念sama閱讀 48,983評(píng)論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像舒憾,于是被迫代替她去往敵國和親屑柔。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,573評(píng)論 2 359

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

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,293評(píng)論 25 707
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理珍剑,服務(wù)發(fā)現(xiàn)掸宛,斷路器,智...
    卡卡羅2017閱讀 134,702評(píng)論 18 139
  • 本文原作者為:kale2010 .blog地址:http://www.cnblogs.com/tianzhijie...
    NoValue閱讀 3,560評(píng)論 0 11
  • 最近的事情有些多招拙,讓自己沒有時(shí)間靜下心來想事情唧瘾,直接導(dǎo)致到心情的煩躁。在孤立無援時(shí)别凤,最先記起的是我的姥爺饰序,...
    夏日鈴蘭_382a閱讀 209評(píng)論 0 0
  • 我最不喜歡的就是面條了 很久才吃一下 然而 我不喜歡吃的原因是我不會(huì)做……這世上總有人能做到我做不到的事情,所以也...
    夢海蓉閱讀 295評(píng)論 0 0