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

- - ### Property Summary

    Properties
    Type | Property and Description
    --- | ---
    `DirectoryProperty` | `directory` Creates a new `DirectoryProperty` that uses the project directory to resolve paths, if required.
    `RegularFileProperty` | `file` Creates a new `RegularFileProperty` that uses the project directory to resolve paths, if required.

  - ### Method Summary

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

- - ### Property Detail

    - #### directory

      Creates a new `DirectoryProperty` that uses the project directory to resolve paths, if required. The property has no initial value.
      Since:
        4.3

    - #### file

      Creates a new `RegularFileProperty` that uses the project directory to resolve paths, if required. The property has no initial value.
      Since:
        4.3

  - ### Method Detail

    - #### getProjectDirectory

          Directory getProjectDirectory()

      Returns the project directory.

    - #### getBuildDirectory

          DirectoryProperty getBuildDirectory()

      Returns the build directory for the project.

    - #### newDirectoryVar

          @Deprecated
          DirectoryVar newDirectoryVar()

      Deprecated. Use `directoryProperty()` instead.
      Creates a new `DirectoryVar` that uses the project directory to resolve paths, if required. The var has no initial value.

    - #### directoryProperty

          DirectoryProperty directoryProperty()

      Creates a new `DirectoryProperty` that uses the project directory to resolve paths, if required. The property has no initial value.
      Since:
        4.3

    - #### newFileVar

          @Deprecated
          RegularFileVar newFileVar()

      Deprecated. Use `fileProperty()` instead.
      Creates a new `RegularFileVar` that uses the project directory to resolve paths, if required. The var has no initial value.

    - #### fileProperty

          RegularFileProperty fileProperty()

      Creates a new `RegularFileProperty` that uses the project directory to resolve paths, if required. The property has no initial value.
      Since:
        4.3

    - #### file

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

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