1、在build.gradle中使用如下方式从依赖库中剔除传递依赖项
随着应用的范围不断扩大,它可能会包含许多依赖项,包括直接依赖项和传递依赖项(应用中导入的库所依赖的库),如需排除不再需要的传递依赖项,可以使 exclude关键字
2、使用all*.exclude剔除所有的传递依赖项
3、直接使用如下方式剔除所有group依赖
4、将项目中已经依赖了的libary,如果其他第三方依赖库中也包含这个依赖,可以使用transitive设置为false表示关闭依赖传递(不再重复依赖已经依赖的库)
例如下图,由于项目中已经依赖了okhttp,retrofit中也会默认依赖okhttp,而我们不想让retrofit重复依赖,则可以使用如上方式;此外如果打开force ture,则会使项目相关的所有依赖都强制使用该版本依赖库(无视版本其他版本高低)
5、使项目都强制指定依赖库版本(无视其他同名依赖项和版本)
ps额外补充:
其他方式参考
configurations.all {
// check for updates every build
resolutionStrategy.cacheChangingModulesFor 0, 'seconds'
resolutionStrategy{
force 'com.android.support:support-v4:26.1.0'
}
}
configurations.all() {
Configuration configuration ->
configuration.resolutionStrategy.cacheChangingModulesFor(0, 'seconds')
resolutionStrategy.setForcedModules(['com.android.support:support-v4:23.4.0'])
resolutionStrategy.setForcedModules(['com.okay.client_app:mediaplayersdk:1.3.6'])
resolutionStrategy.setForcedModules(['com.okay.client_app:libtexerciseview:2.20.2-SNAPSHOT'])
}