Package org.gradle.api.artifacts

## Interface DependencySubstitution

-     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 | Description
    --- | --- | ---
    `void` | `artifactSelection​(Action<? super ArtifactSelectionDetails> action)` | Configures the artifact selection for the substitution.
    `ComponentSelector` | `getRequested()` | The requested dependency, before it is resolved.
    `void` | `useTarget​(java.lang.Object notation)` | This method can be used to replace a dependency before it is resolved, e.g.
    `void` | `useTarget​(java.lang.Object notation, java.lang.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​(java.lang.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​(java.lang.Object notation,
                         java.lang.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

    - #### artifactSelection

          @Incubating
          void artifactSelection​(Action<? super ArtifactSelectionDetails> action)

      Configures the artifact selection for the substitution. This is a convenience method which allows selecting, typically, different artifact classifiers for the same component. Artifact selection matters for components which are not published with Gradle Module Metadata and therefore do not provide proper variants to reason with.
      Parameters:
        `action` - the artifact selection configuration action
      Since:
        6.6