gradle依賴問題

2021-09-26 21:06:52 字數 1411 閱讀 7672

1 查依賴

gradle 預設開啟了依賴傳遞意思就是 專案依賴了a,a又依賴了b和c,這時候,我們只需要寫一行**:implementation a就行了,由傳遞依賴導致的衝突,預設是以最高版本的依賴為準,要想檢視整個專案的依賴傳遞關係,使用命令:

結果:符號的含義:

也可以在android studio左側的project欄的external libraries中檢視,可以看到 由於引入了和當前編譯版本號不同的支援庫所產生的問題。

2 解決方式

2.1 排除所有:

// 在build.gradle 中新增下面節點

configurations

2.2 排除指定:

a:

implementation ('com.github.bumptech.glide:glide:4.7.1')
b:

configurations 

dependencies

}

2.3 force 強制指定

a:全域性配置強制使用某個版本的依賴來解決依賴衝突**現的依賴

configurations.all 

}

b:指定force = true屬性可以衝突時優先使用該版本進行解決

compile(『org.hibernate:hibernate:3.1『)
3 依賴傳遞特性

a 全域性性的關閉依賴傳遞特性

configurations.all
b : 區域性

傳遞依賴特性可以輕鬆地通過transitive引數進行開啟或關閉,上面的示例中如果要忽略spring-web的傳遞性依賴可以採用指定transitive = false的方式來關閉依賴傳遞特性,也可以採用新增@jar的方式忽略該依賴的所有傳遞性依賴。

compile("org.springframework:spring-web:4.3.4.release") 

compile `org.springframework:spring-web:4.3.4.release@jar`

4 使用動態版本

+表示始終採用該依賴最新的1.x版本的最新依賴。

compile 『org.springframework:spring-web:+『

compile(『org.hibernate:hibernate:3.1『)
記錄自:

Gradle依賴排除

在引用依賴時經常會有這樣的問題 某些間接引用的依賴項是不需要的 產生了依賴衝突。此時需要排除一些依賴。下面的內容介紹了幾種在gradle中排除依賴的方式。在dependency中排除 dependencies compile com.zhyea ar4j 1.0 excluding a partic...

Gradle依賴排除

在引用依賴時經常會有這樣的問題 某些間接引用的依賴項是不需要的 產生了依賴衝突。此時需要排除一些依賴。下面的內容介紹了幾種在gradle中排除依賴的方式。在dependency中排除 dependencies compile com.zhyea ar4j 1.0 excluding a partic...

Gradle解決依賴衝突

問題描述 有時候專案依賴的com.android.support support v4的版本會遇到和其他依賴庫中com.android.support support v4的版本發生衝突的情況。例如我專案中使用的22.2.1版本,但是引入的最新的fresco中依賴的是23的版本,由於fragment...