如何仅为发布版本设置gradle resolutionStrategy?

时间:2017-11-06 13:50:40

标签: android gradle groovy

我正在开发一个Android应用程序,如果存在依赖项版本冲突,我希望发布版本失败。如果我想为所有版本启用它,我可以这样做:

configurations.each {
    if (it.name.startsWith("release")) {
        it.resolutionStrategy {
            failOnVersionConflict()
        }
    }
}

但是我不想为调试版本启用它。我找不到任何关于如何做到这一点的文档。我试过了:

configurations.each {
    it.resolutionStrategy {
        failOnVersionConflict()
    }
}

但它不适用。我甚至尝试过我认为相当于第一个例子的东西 - 但这没有效果:

.all

我只是在这里为.each切换failOnVersionConflict,但即使代码已执行,{{1}}也不适用。

我做错了什么?

1 个答案:

答案 0 :(得分:0)

它应该以下列方式工作:

apply plugin: 'java'

configurations.compile.resolutionStrategy {
  failOnVersionConflict()
}

repositories {
  mavenCentral()
}

dependencies {
  compile 'com.google.guava:guava:23.0'
  compile 'com.google.guava:guava:22.0'
}

task deps(type: Copy) {
  from configurations.compile
  into('deps')
}

当您运行gradle deps时,它应该会因版本冲突而失败。如果您注释掉配置块,将复制guava版本23.0。