Package org.gradle.api.artifacts

## Interface Dependency

- All Known Subinterfaces:
    `ClientModule`, `ExternalDependency`, `ExternalModuleDependency`, `FileCollectionDependency`, `ModuleDependency`, `ProjectDependency`, `SelfResolvingDependency`

      public interface Dependency

  A `Dependency` represents a dependency on the artifacts from a particular source. A source can be an Ivy module, a Maven POM, another Gradle project, a collection of Files, etc... A source can have zero or more artifacts.

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static String` | `ARCHIVES_CONFIGURATION` |
    `static String` | `CLASSIFIER` |
    `static String` | `DEFAULT_CONFIGURATION` |

  - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `because​(String reason)` | Sets the reason why this dependency should be used.
    `boolean` | `contentEquals​(Dependency dependency)` | Returns whether two dependencies have identical values for their properties.
    `Dependency` | `copy()` | Creates and returns a new dependency with the property values of this one.
    `String` | `getGroup()` | Returns the group of this dependency.
    `String` | `getName()` | Returns the name of this dependency.
    `String` | `getReason()` | Returns a reason why this dependency should be used, in particular with regards to its version.
    `String` | `getVersion()` | Returns the version of this dependency.

- - ### Field Detail

    - #### DEFAULT_CONFIGURATION

          static final String DEFAULT_CONFIGURATION

      See Also:
        Constant Field Values

    - #### ARCHIVES_CONFIGURATION

          static final String ARCHIVES_CONFIGURATION

      See Also:
        Constant Field Values

    - #### CLASSIFIER

          static final String CLASSIFIER

      See Also:
        Constant Field Values

  - ### Method Detail

    - #### getGroup

          @Nullable
          String getGroup()

      Returns the group of this dependency. The group is often required to find the artifacts of a dependency in a repository. For example, the group name corresponds to a directory name in a Maven like repository. Might return null.

    - #### getName

          String getName()

      Returns the name of this dependency. The name is almost always required to find the artifacts of a dependency in a repository. Never returns null.

    - #### getVersion

          @Nullable
          String getVersion()

      Returns the version of this dependency. The version is often required to find the artifacts of a dependency in a repository. For example the version name corresponds to a directory name in a Maven like repository. Might return null.

    - #### contentEquals

          boolean contentEquals​(Dependency dependency)

      Returns whether two dependencies have identical values for their properties. A dependency is an entity with a key. Therefore dependencies might be equal and yet have different properties.
      Parameters:
        `dependency` - The dependency to compare this dependency with

    - #### copy

          Dependency copy()

      Creates and returns a new dependency with the property values of this one.
      Returns:
        The copy. Never returns null.

    - #### getReason

          @Incubating
          @Nullable
          String getReason()

      Returns a reason why this dependency should be used, in particular with regards to its version. The dependency report will use it to explain why a specific dependency was selected, or why a specific dependency version was used.
      Returns:
        a reason to use this dependency
      Since:
        4.6

    - #### because

          @Incubating
          void because​(@Nullable
                       String reason)

      Sets the reason why this dependency should be used.
      Since:
        4.6