Gradle如何强制指定依赖版本?

3
我一早上一直在试图弄清楚这个问题。我有一个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个回答

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")
                }
            }
        }
    }

它正常运行,希望这能帮助你。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接