Gradle Project
External
- Project API: org.gradle.api.Project
- Project DSL: https://docs.gradle.org/current/dsl/org.gradle.api.Project.html
Internal
Overview
A Gradle project typically represents a software component to be built by executing a set of tasks in sequence. A project has a direct class representation in the Gradle domain model: org.gradle.api.Project.
The project instance is available to the build.gradle script via the project
variable, which corresponds to the Project.getProject() accessor. The project instance is not available in settings.gradle, only the root project descriptor via rootProject
variable, which corresponds to Settings.getRootProject().
Project API and build.gradle DSL
The build script classpath for the project can be configured with Project.buildscript(Closure) which corresponds to the "buildscript" DSL element:
buildscript {
// configuration closure
}
More details are available in:
Plugins for the build can be declare with PluginAware.apply(...), which corresponds to the "apply" DSL element:
apply plugin:|from: '...'
More details on using plugins are available in:
The project's coordinates and other state properties are available through a series of DSL variables: name, group, version, description, path, etc. Some of the coordinates, such as "group" and "version" can be also set in build.gradle with a variable assignment, while others, such as "name" cannot be changed.
group = "io.playground"
version = "0.1.0"
description = "Example project"
logger.info "Project coordinates: ${group} ${name} ${version} ${description} ${path}"
More details available in:
The project logger is also accessible in build.gradle. For more details see:
Dependencies and configurations can be managed with the "dependencies" and "configurations" DSL elements:
dependencies {
// configuration closure
}
configurations {
// configuration closure
}
More details in:
The DSL exposes project-level methods for file resolution:
File f = file('./some/path/inside/project')
More details in:
The project allows declaring new tasks in build.gradle and also defining completely new tasks in-line. For details on tasks, see: