Package org.gradle.api.artifacts

# Interface ProjectDependency

All Superinterfaces:
  `Buildable`, `Dependency`, `HasAttributes`, `HasConfigurableAttributes<ModuleDependency>`, `ModuleDependency`, `SelfResolvingDependency`

public interface ProjectDependency extends ModuleDependency, SelfResolvingDependency

A `ProjectDependency` is a `Dependency` on another project in the current project hierarchy.

- ## Field Summary

  ### Fields inherited from interface org.gradle.api.artifacts.Dependency

  `ARCHIVES_CONFIGURATION, CLASSIFIER, DEFAULT_CONFIGURATION`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `ProjectDependency`
  `copy()`
  Creates and returns a new dependency with the property values of this one.
  `TaskDependency`
  `getBuildDependencies()`
  Deprecated.
  This class will no longer implement `SelfResolvingDependency` in Gradle 9.0
  `Project`
  `getDependencyProject()`
  Deprecated.
  This method will be removed in Gradle 9.0.
  `String`
  `getPath()`
  Get the path to the project that this dependency refers to relative to its owning build.
  `Set<File>`
  `resolve()`
  Deprecated.
  This class will no longer implement `SelfResolvingDependency` in Gradle 9.0
  `Set<File>`
  `resolve(boolean transitive)`
  Deprecated.
  This class will no longer implement `SelfResolvingDependency` in Gradle 9.0

  ### Methods inherited from interface org.gradle.api.artifacts.Dependency

  `because, contentEquals, getGroup, getName, getReason, getVersion`

  ### Methods inherited from interface org.gradle.api.artifacts.ModuleDependency

  `addArtifact, artifact, artifact, attributes, capabilities, doNotEndorseStrictVersions, endorseStrictVersions, exclude, getArtifacts, getAttributes, getCapabilitySelectors, getExcludeRules, getRequestedCapabilities, getTargetConfiguration, isEndorsingStrictVersions, isTransitive, setTargetConfiguration, setTransitive`

- ## Method Details

  - ### getPath

    String getPath()
    Get the path to the project that this dependency refers to relative to its owning build.
    Since:
      8.11
    See Also:
      - `Project.getPath()`

  - ### getDependencyProject

    @Deprecated Project getDependencyProject()
    Deprecated.
    This method will be removed in Gradle 9.0. Accessing the mutable state of other projects should be avoided.
    Returns the project associated with this project dependency.

  - ### copy

    ProjectDependency copy()
    Creates and returns a new dependency with the property values of this one.
    Specified by:
      `copy` in interface `Dependency`
    Specified by:
      `copy` in interface `ModuleDependency`
    Returns:
      The copy. Never returns null.

  - ### getBuildDependencies

    @Deprecated TaskDependency getBuildDependencies()
    Deprecated.
    This class will no longer implement `SelfResolvingDependency` in Gradle 9.0
    Returns a dependency which contains the tasks which build this artifact. All `Buildable` implementations must ensure that the returned dependency object is live, so that it tracks changes to the dependencies of this buildable.
    Specified by:
      `getBuildDependencies` in interface `Buildable`
    Returns:
      The dependency. Never returns null. Returns an empty dependency when this artifact is not built by any tasks.

  - ### resolve

    @Deprecated Set<File> resolve()
    Deprecated.
    This class will no longer implement `SelfResolvingDependency` in Gradle 9.0
    Resolves this dependency. A `ProjectDependency` is resolved with transitive equals true by this method.
    Specified by:
      `resolve` in interface `SelfResolvingDependency`
    Returns:
      The files which make up this dependency.
    See Also:
      - `SelfResolvingDependency.resolve(boolean)`

  - ### resolve

    @Deprecated Set<File> resolve(boolean transitive)
    Deprecated.
    This class will no longer implement `SelfResolvingDependency` in Gradle 9.0
    Resolves this dependency by specifying the transitive mode. This mode has only an effect if the self resolved dependency is of type `ProjectDependency`. In this case, if transitive is `false`, only the self resolving dependencies of the project configuration which are no project dependencies are resolved. If transitive is set to true, other project dependencies belonging to the configuration of the resolved project dependency are resolved recursively.
    Specified by:
      `resolve` in interface `SelfResolvingDependency`
    Parameters:
      `transitive` - Whether to resolve transitively. Has only an effect on a `ProjectDependency`
    Returns:
      The files which make up this dependency.