# ProjectLayout

@ServiceScope(value = Project::class)
interface ProjectLayout

Provides access to several important locations for a project.

An instance of this type can be injected into a task, plugin or other object by annotating a public constructor or method with `javax.inject.Inject`. It is also available via getLayout.

Note: This interface is not intended for implementation by build script or plugin authors.

#### Since

4.1

## Functions

dir
Link copied to clipboard
abstract fun dir(file: Provider<File>): Provider<Directory>
Creates a Directory provider whose location is calculated from the given Provider.
file
Link copied to clipboard
abstract fun file(file: Provider<File>): Provider<RegularFile>
Creates a RegularFile provider whose location is calculated from the given Provider.
files
Link copied to clipboard
abstract fun files(@Nullable paths: Array<@Nullable Any>): FileCollection
Creates a read-only FileCollection containing the given files, as defined by files.
getBuildDirectory
Link copied to clipboard
abstract fun getBuildDirectory(): DirectoryProperty
Returns the build directory for the project.
getProjectDirectory
Link copied to clipboard
abstract fun getProjectDirectory(): Directory
Returns the project directory.
getSettingsDirectory
Link copied to clipboard
@Incubating
abstract fun getSettingsDirectory(): Directory
Returns the settings directory.