public interface DependencySubstitutions
Modifier and Type | Interface | Description |
---|---|---|
static interface |
DependencySubstitutions.Substitution |
Provides a DSL-friendly mechanism for specifying the target of a substitution.
|
Modifier and Type | Method | Description |
---|---|---|
DependencySubstitutions |
all(Action<? super DependencySubstitution> rule) |
Adds a dependency substitution rule that is triggered for every dependency (including transitive)
when the configuration is being resolved.
|
ComponentSelector |
module(java.lang.String notation) |
Create a ModuleComponentSelector from the provided input string.
|
ComponentSelector |
platform(ComponentSelector selector) |
Transforms the provided selector into a platform selector.
|
ComponentSelector |
project(java.lang.String path) |
Create a ProjectComponentSelector from the provided input string.
|
DependencySubstitutions.Substitution |
substitute(ComponentSelector substitutedDependency) |
DSL-friendly mechanism to construct a dependency substitution for dependencies matching the provided selector.
|
ComponentSelector |
variant(ComponentSelector selector,
Action<? super VariantSelectionDetails> detailsAction) |
Transforms the supplied selector into a specific variant selector.
|
DependencySubstitutions all(Action<? super DependencySubstitution> rule)
DependencySubstitution
that can be used to find out what dependency is being resolved and to influence the resolution process.
Example:
configurations { main } // add dependency substitution rules configurations.main.resolutionStrategy.dependencySubstitution { // Use a rule to change the dependency module while leaving group + version intact all { DependencySubstitution dependency -> if (dependency.requested instanceof ModuleComponentSelector && dependency.requested.module == 'groovy-all') { dependency.useTarget dependency.requested.group + ':groovy:' + dependency.requested.version } } // Use a rule to replace all missing projects with module dependencies all { DependencySubstitution dependency -> if (dependency.requested instanceof ProjectComponentSelector) { def targetProject = findProject(":${dependency.requested.path}") if (targetProject == null) { dependency.useTarget "org.myorg:" + dependency.requested.path + ":+" } } } }The rules are evaluated in order they are declared. Rules are evaluated after forced modules are applied (see
ResolutionStrategy.force(Object...)
ComponentSelector module(java.lang.String notation)
ComponentSelector project(java.lang.String path)
ComponentSelector variant(ComponentSelector selector, Action<? super VariantSelectionDetails> detailsAction)
selector
- the origin selectordetailsAction
- the variant selection details configurationComponentSelector platform(ComponentSelector selector)
selector
- the original selectorDependencySubstitutions.Substitution substitute(ComponentSelector substitutedDependency)
Examples:
configurations { main } configurations.main.resolutionStrategy.dependencySubstitution { // Substitute project and module dependencies substitute module('org.gradle:api') using project(':api') substitute project(':util') using module('org.gradle:util:3.0') // Substitute one module dependency for another substitute module('org.gradle:api:2.0') using module('org.gradle:api:2.1') }