Gradle Force依赖版本?

时间:2019-09-25 14:27:57

标签: java gradle dependencies

我一直在努力弄清这个问题。 我有一个gradle依赖树,它拉入了错误的版本:

    > Task :myproj:dependencyInsight
io.fabric8:kubernetes-model:4.1.0 (selected by rule)
   variant "runtime" [
      org.gradle.status = release (not requested)
      Requested attributes not found in the selected variant:
         org.gradle.usage  = java-api
   ]

io.fabric8:kubernetes-model:4.3.0 -> 4.1.0
\--- io.fabric8:kubernetes-client:4.3.0
     \--- compileClasspath

我不希望它降级为4.1.0,但是对于我一生来说,这不能停止。 根本没有运气尝试过以下方法:

configurations.all {
    resolutionStrategy {
        force 'io.fabric8:kubernetes-model:4.3.0'
    }
}

///////

dependencies {
    compile ('io.fabric8:kubernetes-client:4.3.0')
    { exclude group: 'io.fabric8', module: 'kubernetes-model', version: '4.1.0' }
}

有人知道其他可能有用的解决方案吗? 谢谢

1 个答案:

答案 0 :(得分:1)

我总是使用这种方式来强制使用 Gradle(6.0.1) 中的版本:

configurations.all {
        
        resolutionStrategy {
            eachDependency { DependencyResolveDetails details ->
                if (details.requested.group == 'redis.clients') {
                    details.useVersion "3.0.1"
                }
                if (details.requested.group == 'com.github.jsqlparser') {
                    details.useVersion "2.1"
                }
                if (details.requested.group == 'com.squareup.okhttp3') {
                    details.useVersion "4.0.0"
                }
                if (details.requested.group == 'com.github.pagehelper' && !details.requested.name.contains('spring-boot')) {
                    
                    details.useVersion("5.1.11")
                }
            }
        }
    }

效果很好,希望对您有所帮助。