以前在遇到版本升级的时候经常会遇到版本依赖冲突,比如在升级rxjava 从2.x升级到3.x版本,由于RxAndroid因为没有及时升级,因此内部还是依赖2.x版本的RxJava,这就导致项目的依赖发生了冲突。
通常情况下我们会这么写
1 | implementation ('io.reactivex.rxjava2:rxandroid:2.1.0') { |
但是这样写并不优雅,假设我们有多个依赖冲突,代码就会变为下面的样子
1 | implementation "libraryA:xxx:1.0.0",{ |
针对这种情况,我们可以在gradle的构建过程中强制指定依赖的版本,以rxjava为例,可以这么处理
额外知识点
1,本地依赖替换为外部依赖
通过dependencySubstitution便可以非常方便对这两种场景进行切换
useRemote只是定义在build.gradle文件中的一个变量,作为切换开发-测试环境的开关:
2.将外部依赖替换为本地依赖
1 | configurations.all { |