For each dependency we define in our build file, there is a dependency resolution rule. This rule is executed when the dependency needs to be resolved. We can customize this rule in our build file, so we can change certain parts of the rule before the dependency is actually resolved. Gradle allows us to change the dependency group, name, and version with a customized resolution rule. This way, we can even completely replace dependencies with other dependencies or force a particular version.
Dependency resolution rule details are implemented in the org.gradle.api.artifacts.DependencyResolveDetails
class. Inside the resolutionStrategy
configuration block, we use the eachDependency
method to customize a resolution rule. This method accepts a closure, and the closure argument is an instance of DependencyResolveDetails
. We use the useVersion
and useTarget
methods of DependencyResolveDetails
to change either the version or the complete group, name, and version...