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:
configurations2.3 force 強制指定dependencies
}
a:全域性配置強制使用某個版本的依賴來解決依賴衝突**現的依賴
configurations.all
}
b:指定force = true
屬性可以衝突時優先使用該版本進行解決
compile(『org.hibernate:hibernate:3.1『)3 依賴傳遞特性
a 全域性性的關閉依賴傳遞特性
configurations.allb : 區域性
傳遞依賴特性可以輕鬆地通過transitive引數進行開啟或關閉,上面的示例中如果要忽略spring-web
的傳遞性依賴可以採用指定transitive = false
的方式來關閉依賴傳遞特性,也可以採用新增@jar
的方式忽略該依賴的所有傳遞性依賴。
compile("org.springframework:spring-web:4.3.4.release")4 使用動態版本compile `org.springframework:spring-web:4.3.4.release@jar`
+
表示始終採用該依賴最新的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...