2015-06-04 67 views
3

我遇到了resolutionStrategy.cacheChangingModulesFor問題。Gradle如何在build腳本塊中爲SNAPSHOT版本指定cacheResolutionStrategy?

我的項目的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塊快照版本的cacheResolutionStrategy?

回答

6

指定它在塊外,不起作用(,因爲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' 
    } 
} 
+0

順便說一句,快照版本被視爲「改變中」默認(如果使用的Maven回購)。因此不需要明確設置「changing = true」。 –

+0

很確定這是因爲我們當時使用的Gradle版本中存在一個錯誤。現在,這是不需要的! :) – wrossmck

相關問題