# Interface DependencySubstitution

@Incubating public interface DependencySubstitution
Provides means to substitute a different dependency during resolution.

Since:
  2.5

## Method Summary

Modifier and Type
Method
Description
`ComponentSelector`
`getRequested()`
The requested dependency, before it is resolved.
`void`
`useTarget(Object notation)`
This method can be used to replace a dependency before it is resolved, e.g.

## Method Details

### getRequested

ComponentSelector getRequested()
The requested dependency, before it is resolved. The requested dependency does not change even if there are multiple dependency substitution rules that manipulate the dependency metadata.

### useTarget

void useTarget(Object notation)
This method can be used to replace a dependency before it is resolved, e.g. change group, name or version (or all three of them), or replace it with a project dependency. Accepted notations are:

- Strings encoding group:module:version, like 'org.gradle:gradle-core:2.4'
- Maps like [group: 'org.gradle', name: 'gradle-core', version: '2.4']
- Project instances like `project(":api")`
- Any instance of `ModuleComponentSelector` or `ProjectComponentSelector`

Parameters:
  `notation` - the notation that gets parsed into an instance of `ComponentSelector`.