# Interface GradleProject

All Superinterfaces:
  `BuildableElement, Element, HierarchicalElement, Model, ProjectModel`

public interface GradleProject extends HierarchicalElement, BuildableElement, ProjectModel
Represents a Gradle project.

Since:
  1.0-milestone-5

- ## Method Summary

  Modifier and Type
  Method
  Description
  `@Nullable GradleProject`
  `findByPath(String path)`
  Searches all descendants (children, grand-children, etc.), including self, by given path.
  `File`
  `getBuildDirectory()`
  Returns the build directory for this project.
  `GradleScript`
  `getBuildScript()`
  Returns the build script for this project.
  `String`
  `getBuildTreePath()`
  Returns a path to the project for the full build tree
  `DomainObjectSet<? extends GradleProject>`
  `getChildren()`
  Returns the child elements, or the empty set if there are no child elements.
  `GradleProject`
  `getParent()`
  Returns the parent of this element, or `null` if there is no parent.
  `String`
  `getPath()`
  Returns the path of this project.
  `File`
  `getProjectDirectory()`
  Returns the project directory for this project.
  `ProjectIdentifier`
  `getProjectIdentifier()`
  Returns the identifier for this Gradle project.
  `DomainObjectSet<? extends GradleTask>`
  `getTasks()`
  Returns the tasks of this project.

  ### Methods inherited from interface Element

  `getDescription, getName`

- ## Method Details

  - ### getProjectIdentifier

    ProjectIdentifier getProjectIdentifier()
    Returns the identifier for this Gradle project.
    Specified by:
      `getProjectIdentifier` in interface `ProjectModel`
    Since:
      2.13

  - ### getTasks

    DomainObjectSet<? extends GradleTask> getTasks()
    Returns the tasks of this project.
    Specified by:
      `getTasks` in interface `BuildableElement`
    Returns:
      The tasks of this project.

  - ### getParent

    GradleProject getParent()
    Returns the parent of this element, or `null` if there is no parent.
    Specified by:
      `getParent` in interface `HierarchicalElement`
    Returns:
      The parent of this element, or `null` if there is no parent.

  - ### getChildren

    DomainObjectSet<? extends GradleProject> getChildren()
    Returns the child elements, or the empty set if there are no child elements.
    Specified by:
      `getChildren` in interface `HierarchicalElement`
    Returns:
      The child elements, or the empty set if there are no child elements.

  - ### getPath

    String getPath()
    Returns the path of this project. This is a unique identifier for this project within the build.
    Returns:
      The path.

  - ### findByPath

    @Nullable GradleProject findByPath(String path)
    Searches all descendants (children, grand-children, etc.), including self, by given path.
    Returns:
      Gradle project with matching path or `null` if not found.

  - ### getBuildScript

    GradleScript getBuildScript() throws UnsupportedMethodException
    Returns the build script for this project.
    Returns:
      The build script.
    Throws:
      `UnsupportedMethodException` - For Gradle versions older than 1.8, where this method is not supported.
    Since:
      1.8

  - ### getBuildDirectory

    File getBuildDirectory() throws UnsupportedMethodException
    Returns the build directory for this project.
    Returns:
      The build directory.
    Throws:
      `UnsupportedMethodException` - For Gradle versions older than 2.0, where this method is not supported.
    Since:
      2.0

  - ### getProjectDirectory

    File getProjectDirectory() throws UnsupportedMethodException
    Returns the project directory for this project.
    Returns:
      The project directory.
    Throws:
      `UnsupportedMethodException` - For Gradle versions older than 2.4, where this method is not supported.
    Since:
      2.4

  - ### getBuildTreePath

    @Incubating String getBuildTreePath() throws UnsupportedMethodException
    Returns a path to the project for the full build tree
    Returns:
      a path to the project for the full build tree
    Throws:
      `UnsupportedMethodException` - When the target Gradle version does not support this method.
    Since:
      9.2.0