DependencySubstitution (Gradle API 4.5.1)
Date: 2018-02-05

org.gradle.api.artifacts

## Interface DependencySubstitution

-     @Incubating
      public interface DependencySubstitution

  Provides means to substitute a different dependency during resolution.
  Since:
    2.5

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and 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.
    `void` | `useTarget(Object notation, String reason)` This method can be used to replace a dependency before it is resolved, e.g.

- - ### Method Detail

    - #### 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`.

    - #### useTarget

          void useTarget(Object notation,
                         String reason)

      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 and provides a human readable reason for diagnostics. 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`.
      Since:
        4.5