Package: org.gradle.api.artifacts

## [Java] Interface DependencyResolveDetails

- Provides details about a dependency when it is resolved. Provides means to manipulate dependency metadata when it is resolved.

  Since:
    1.4

- - ### Methods Summary

    Methods
    Type | Name and description
    --- | ---
    `ModuleVersionSelector` | `getRequested()` The module, before it is resolved.
    `ModuleVersionSelector` | `getTarget()` The target module selector used to resolve the dependency.
    `void` | `useTarget(Object notation)` Allows to override the details of the dependency (see getTarget()) when it is resolved (see getRequested()).
    `void` | `useVersion(String version)` Allows to override the version when the dependency getRequested() is resolved.

- - ### Method Detail

    - #### public ModuleVersionSelector getRequested()

      The module, before it is resolved. The requested module does not change even if there are multiple dependency resolve rules that manipulate the dependency metadata.

    - #### public ModuleVersionSelector getTarget()

      The target module selector used to resolve the dependency. Never returns null. Target module is updated when methods like useVersion(String) are used.

    - #### public void useTarget(Object notation)

      Allows to override the details of the dependency (see getTarget()) when it is resolved (see getRequested()). This method can be used to change the dependency before it is resolved, e.g. change group, name or version (or all three of them). In many cases users are interested in changing the version. For such scenario you can use the useVersion(String) method.

      Parameters:
        `notation` - the notation that gets parsed into an instance of ModuleVersionSelector. You can pass Strings like 'org.gradle:gradle-core:1.4', Maps like [group: 'org.gradle', name: 'gradle-core', version: '1.4'], or instances of ModuleVersionSelector.
      Since:
        1.5

    - #### public void useVersion(String version)

      Allows to override the version when the dependency getRequested() is resolved. Can be used to select a version that is different than requested. Forcing modules via ResolutionStrategy.force uses this capability. Configuring a version different than requested will cause getTarget() method return a target module with updated target version.

      If you need to change not only the version but also group or name please use the useTarget(Object) method.

      Parameters:
        `version` - to use when resolving this dependency, cannot be null. It is valid to configure the same version as requested.