Gradle排除传递依赖

Gradle允许你完全控制传递依赖,你可以选择排除全部的传递依赖也可以排除指定的依赖。
exclude:可以设置不编译指定的模块,排除指定模块的依赖。后的参数有group和module,可以分别单独使用,会排除所有匹配项。

// 编译CommonSDK模块,但是去掉此模块中对com.android.support的依赖,防止重复依赖报错
compile (project(':CommonSDK')) { exclude group: "com.android.support" }
compile ('com.jakewharton:butterknife:8.5.1'){
exclude module: 'support-compat'
exclude group: 'com.android.**.***', module: '***-***'
}

transitive:用于自动处理子依赖项,默认为true,gradle自动添加子依赖项。设置为false排除所有的传递依赖,可以用来解决一些依赖冲突的问题,比如一些 Error:java.io.IOException: Duplicate zip entry 报错。

// 使用transitive属性设置为false来排除所有的传递依赖
compile project(':extras:ShimmerAndroid'){
transitive = false
}

force:强制设置某个模块的版本。

configurations.all{
resolutionStrategy{
force'org.hamcrest:hamcrest-core:1.3'
}
}

这样,应用中对org.hamcrest:hamcrest-core 依赖就会变成1.3版本。

This entry was posted in 其它.