org.gradle.api.file

## Interface ProjectLayout

-     @Incubating
      public interface ProjectLayout

  Provides access to several important locations for a project. An instance of the factory can be injected into a task or plugin by annotating a public constructor or method with `javax.inject.Inject`. It is also available via `Project.getLayout()`.
  Since:
    4.1

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `Provider<RegularFile>` | `file(Provider<File> file)` Creates a `RegularFile` implementation whose location is calculated from the given `Provider`.
    `DirectoryVar` | `getBuildDirectory()` Returns the build directory for the project.
    `Directory` | `getProjectDirectory()` Returns the project directory.
    `DirectoryVar` | `newDirectoryVar()` Creates a new `DirectoryVar` that uses the project directory to resolve paths, if required.
    `RegularFileVar` | `newFileVar()` Creates a new `RegularFileVar` that uses the project directory to resolve paths, if required.

- - ### Method Detail

    - #### getProjectDirectory

          Directory getProjectDirectory()

      Returns the project directory.

    - #### getBuildDirectory

          DirectoryVar getBuildDirectory()

      Returns the build directory for the project.

    - #### newDirectoryVar

          DirectoryVar newDirectoryVar()

      Creates a new `DirectoryVar` that uses the project directory to resolve paths, if required. The var has no initial value.

    - #### newFileVar

          RegularFileVar newFileVar()

      Creates a new `RegularFileVar` that uses the project directory to resolve paths, if required. The var has no initial value.

    - #### file

          Provider<RegularFile> file(Provider<File> file)

      Creates a `RegularFile` implementation whose location is calculated from the given `Provider`.