【问题标题】:Gradle force dependency version?Gradle强制依赖版本?
【发布时间】:2019-09-25 14:27:57
【问题描述】:

我整个上午都在想办法解决这个问题。 我有一个 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' }
}

有人知道另一种可能有帮助的解决方案吗? 谢谢

【问题讨论】:

    标签: java gradle dependencies


    【解决方案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")
                    }
                }
            }
        }
    

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

    【讨论】:

      猜你喜欢
      • 2019-12-29
      • 2017-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-02
      • 2023-04-08
      • 1970-01-01
      相关资源
      最近更新 更多