Package org.gradle.api.artifacts
Interface DependencySubstitutions
public interface DependencySubstitutions
Allows replacing dependencies with other dependencies.
- Since:
- 2.5
-
Nested Class Summary
Modifier and TypeInterfaceDescriptionstatic interface
Provides a DSL-friendly mechanism for specifying the target of a substitution. -
Method Summary
Modifier and TypeMethodDescriptionall
(Action<? super DependencySubstitution> rule) Adds a dependency substitution rule that is triggered for every dependency (including transitive) when the configuration is being resolved.Create a ModuleComponentSelector from the provided input string.platform
(ComponentSelector selector) Transforms the provided selector into a platform selector.Create a ProjectComponentSelector from the provided input string.substitute
(ComponentSelector substitutedDependency) DSL-friendly mechanism to construct a dependency substitution for dependencies matching the provided selector.variant
(ComponentSelector selector, Action<? super VariantSelectionDetails> detailsAction) Transforms the supplied selector into a specific variant selector.
-
Method Details
-
all
Adds a dependency substitution rule that is triggered for every dependency (including transitive) when the configuration is being resolved. The action receives an instance ofDependencySubstitution
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 (seeResolutionStrategy.force(Object...)
- Returns:
- this
-
module
Create a ModuleComponentSelector from the provided input string. Strings must be in the format "{group}:{module}:{version}". -
project
Create a ProjectComponentSelector from the provided input string. Strings must be in the format ":path". -
variant
ComponentSelector variant(ComponentSelector selector, Action<? super VariantSelectionDetails> detailsAction) Transforms the supplied selector into a specific variant selector.- Parameters:
selector
- the origin selectordetailsAction
- the variant selection details configuration- Since:
- 6.6
-
platform
Transforms the provided selector into a platform selector.- Parameters:
selector
- the original selector- Since:
- 6.6
-
substitute
DSL-friendly mechanism to construct a dependency substitution for dependencies matching the provided selector.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') }
-