|
Groovy Documentation | |||||||
FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | METHOD | DETAIL: FIELD | METHOD |
public interface ResolutionStrategy
Defines the strategies around dependency resolution. For example, forcing certain dependency versions, conflict resolutions or snapshot timeouts.
Examples:
apply plugin: 'java' //so that there are some configurations configurations.all { resolutionStrategy { // fail eagerly on version conflict (includes transitive dependencies) // e.g. multiple different versions of the same dependency (group and name are equal) failOnVersionConflict() // force certain versions of dependencies (including transitive) // *append new forced modules: force 'asm:asm-all:3.3.1', 'commons-io:commons-io:1.4' // *replace existing forced modules with new ones: forcedModules = ['asm:asm-all:3.3.1'] // add a dependency resolve rule eachDependency { DependencyResolveDetails details -> //specifying a fixed version for all libraries with 'org.gradle' group if (details.requested.group == 'org.gradle') { details.useVersion'1.4' } //changing 'groovy-all' into 'groovy': if (details.requested.name == 'groovy-all') { details.useTarget group: details.requested.group, name: 'groovy', version: details.requested.version } } // cache dynamic versions for 10 minutes cacheDynamicVersionsFor 10*60, 'seconds' // don't cache changing modules at all cacheChangingModulesFor 0, 'seconds' } }
Method Summary | |
---|---|
void
|
cacheChangingModulesFor(int value, String units)
Sets the length of time that changing modules will be cached, with units expressed as a String. |
void
|
cacheChangingModulesFor(int value, TimeUnit units)
Sets the length of time that changing modules will be cached. |
void
|
cacheDynamicVersionsFor(int value, String units)
Sets the length of time that dynamic versions will be cached, with units expressed as a String. |
void
|
cacheDynamicVersionsFor(int value, TimeUnit units)
Sets the length of time that dynamic versions will be cached. |
ResolutionStrategy
|
eachDependency(Action rule)
Adds a dependency resolve rule that is triggered for every dependency (including transitive) when the configuration is being resolved. |
ResolutionStrategy
|
failOnVersionConflict()
In case of conflict, Gradle by default uses the newest of conflicting versions. |
ResolutionStrategy
|
force(Object... moduleVersionSelectorNotations)
Allows forcing certain versions of dependencies, including transitive dependencies. |
Set
|
getForcedModules()
Returns currently configured forced modules. |
ResolutionStrategy
|
setForcedModules(Object... moduleVersionSelectorNotations)
Allows forcing certain versions of dependencies, including transitive dependencies. |
Method Detail |
---|
public void cacheChangingModulesFor(int value, String units)
A convenience method for cacheChangingModulesFor(int, java.util.concurrent.TimeUnit) with units expressed as a String. Units are resolved by calling the valueOf(String) method of TimeUnit with the upper-cased string value.
value
- The number of time unitsunits
- The units
public void cacheChangingModulesFor(int value, TimeUnit units)
Gradle caches the contents and artifacts of changing modules. By default, these cached values are kept for 24 hours, after which the cached entry is expired and the module is resolved again.
Use this method to provide a custom expiry time after which the cached entries for any changing module will be expired.
value
- The number of time unitsunits
- The units
public void cacheDynamicVersionsFor(int value, String units)
A convenience method for cacheDynamicVersionsFor(int, java.util.concurrent.TimeUnit) with units expressed as a String. Units are resolved by calling the valueOf(String) method of TimeUnit with the upper-cased string value.
value
- The number of time unitsunits
- The units
public void cacheDynamicVersionsFor(int value, TimeUnit units)
Gradle keeps a cache of dynamic version => resolved version (ie 2.+ => 2.3). By default, these cached values are kept for 24 hours, after which the cached entry is expired and the dynamic version is resolved again.
Use this method to provide a custom expiry time after which the cached value for any dynamic version will be expired.
value
- The number of time unitsunits
- The units
@Incubating public ResolutionStrategy eachDependency(Action rule)
apply plugin: 'java' //so that there are some configurations configurations.all { resolutionStrategy { eachDependency { DependencyResolveDetails details -> //specifying a fixed version for all libraries with 'org.gradle' group if (details.requested.group == 'org.gradle') { details.useVersion '1.4' } } eachDependency { details -> //multiple actions can be specified if (details.requested.name == 'groovy-all') { //changing the name: details.useTarget group: details.requested.group, name: 'groovy', version: details.requested.version } } } }The rules are evaluated in order they are declared. Rules are evaluated after forced modules are applied (see force(Object...)
public ResolutionStrategy failOnVersionConflict()
apply plugin: 'java' //so that there are some configurations configurations.all { resolutionStrategy.failOnVersionConflict() }
public ResolutionStrategy force(Object... moduleVersionSelectorNotations)
It accepts following notations:
apply plugin: 'java' //so that there are some configurations configurations.all { resolutionStrategy.force 'asm:asm-all:3.3.1', 'commons-io:commons-io:1.4' }
moduleVersionSelectorNotations
- typically group:name:version notations to append
public Set getForcedModules()
public ResolutionStrategy setForcedModules(Object... moduleVersionSelectorNotations)
For information on notations see force(Object...)
Example:
apply plugin: 'java' //so that there are some configurations configurations.all { resolutionStrategy.forcedModules = ['asm:asm-all:3.3.1', 'commons-io:commons-io:1.4'] }
moduleVersionSelectorNotations
- typically group:name:version notations to set
Gradle API 1.12