Gradle如何在buildscript块中为快照版本指定CacheResolutionsStrategy?

Gradle如何在buildscript块中为快照版本指定CacheResolutionsStrategy?,gradle,dependencies,dependency-resolution,Gradle,Dependencies,Dependency Resolution,我在解决策略。缓存更改模块方面遇到问题 我的project build.gradle与此类似 apply plugin: 'base' apply plugin: 'maven' apply plugin: 'maven-publish' apply from: "gradle/mixins/cachestrategy.gradle" configurations.all { resolutionStrategy.cacheDynamicVersionsFor 5, 'minutes'

我在解决策略。缓存更改模块方面遇到问题

我的project build.gradle与此类似

apply plugin: 'base'
apply plugin: 'maven'
apply plugin: 'maven-publish'
apply from: "gradle/mixins/cachestrategy.gradle"
configurations.all {
  resolutionStrategy.cacheDynamicVersionsFor 5, 'minutes'
  resolutionStrategy.cacheChangingModulesFor 0, 'seconds'
}

buildscript {
  repositories {
    maven {
      url artifactoryUrl
    }
  }
  dependencies {
    classpath (group: 'com.myorg', name: 'aCustomPlugin', version: '1.5.0-SNAPSHOT') {
      changing = true
    }
  }
}

allprojects {
  apply plugin: 'base'
  apply plugin: 'com.myorg.aCustomPlugin'
}

我的问题是:如何在buildscript块中为快照版本指定CacheResolutionsStrategy?

在块外指定它不起作用(因为为了生成脚本,首先计算buildscript块…),因此尚未计算脚本中定义的缓存策略规则

解析策略应该像这样放置在buildscript块中

buildscript {
  repositories {
    mavenLocal()
    maven {
      url artifactoryUrl
    }
  }
  dependencies {
    classpath (group: 'com.myorg', name: 'aCustomPlugin', version: '1.5.0-SNAPSHOT') {
      changing = true
    }
  }
  configurations.all {
    resolutionStrategy.cacheDynamicVersionsFor 5, 'minutes'
    resolutionStrategy.cacheChangingModulesFor 0, 'seconds'
  }
}

顺便说一句,默认情况下,快照版本被视为“正在更改”(如果使用Maven repo)。因此,不需要显式地设置
changing=true
。很肯定,这是因为我们当时使用的gradle版本中存在一个bug。现在,不需要了!:)您能解释一下CacheDynamicVersions for和CacheChangingModules for之间的区别吗?