allprojects { }
artifacts { }
buildscript { }
configurations { }
dependencies { }
repositories { }
sourceSets { }
subprojects { }
Project
Task
Gradle
Settings
Script
SourceSet
Configuration
AntlrTask
Checkstyle
CodeNarc
Compile
Copy
Delete
Directory
DependencyReportTask
EclipseClasspath
EclipseJdt
EclipseProject
EclipseWtp
Exec
GradleBuild
GroovyCompile
Groovydoc
IdeaModule
IdeaProject
IdeaWorkspace
Jar
Javadoc
JavaExec
JettyRun
JettyRunWar
JettyStop
PropertyReportTask
ProjectReportTask
ScalaCompile
ScalaDoc
Sync
Tar
TaskReportTask
Test
Upload
War
Wrapper
Zip
This reference guide describes the various types which make up the Gradle build language, or DSL.
There are a few basic concepts that you should understand, which will help you write Gradle scripts.
First, Gradle scripts areconfiguration scripts. As the script executes, it configures an object of a particular type. For example, as a build script executes, it configures an object of typeProject
. This object is called thedelegate object of the script. The following table shows the delegate for each type of Gradle script.
The properties and methods of the delegate object are available for you to use in the script.
Second, each Gradle script implements theScript
interface. This interface defines a number of properties and methods which you can use in the script.
A build script is made up of zero or more statements and script blocks. Statements can include method calls, property assignments, and local variable definitions. A script block is a method call which takes a closure as a parameter. The closure is treated as aconfiguration closure which configures some delegate object as it executes. The top level script blocks are listed below.
Block | Description |
allprojects { } | Configures this project and each of its sub-projects. |
artifacts { } | Configures the published artifacts for this project. |
buildscript { } | Configures the build script classpath for this project. |
configurations { } | Configures the dependency configurations for this project. |
dependencies { } | Configures the dependencies for this project. |
repositories { } | Configures the repositories for this project. |
sourceSets { } | Configures the source sets of this project. |
subprojects { } | Configures the sub-projects of this project. |
A build script is also a Groovy script, and so can contain those elements allowed in a Groovy script, such as method definitions and class definitions.
Listed below are some of the central types which are used in Gradle scripts:
Type | Description |
Project | This interface is the main API you use to interact with Gradle from your build file. From a |
Task | A |
Gradle | Represents an invocation of Gradle. |
Settings | Declares the configuration required to instantiate and configure the hierarchy of |
Script | This interface is implemented by all Gradle scripts to add in some Gradle-specific methods. As your compiledscript class will implement this interface, you can use the methods and properties declared by this interfacedirectly in your script. |
SourceSet | A |
Configuration | A |
Listed below are the various task types which are available for use in your build script:
Type | Description |
AntlrTask | Generates parsers from Antlr grammars. |
Checkstyle | Runs Checkstyle against some source files. |
CodeNarc | Runs CodeNarc against some source files. |
Compile | Compiles Java source files. |
Copy | Copies files into a destination directory. This task can also rename and filter files as it copies. The taskimplements |
Delete | Deletes files or directories. |
Directory | Creates a directory. |
DependencyReportTask | Displays the dependency tree for a project. Can be configured to output to a file, and to optionally output agraphviz compatible "dot" graph. An instance of this type is used when you execute the |
EclipseClasspath | Generates an Eclipse |
EclipseJdt | Generates the Eclipse JDT configuration file. |
EclipseProject | Generates an Eclipse |
EclipseWtp | Generates Eclipse configuration files for Eclipse WTP. |
Exec | Executes a command line process. |
GradleBuild | Executes a Gradle build. |
GroovyCompile | Compiles Groovy source files, and optionally, Java source files. |
Groovydoc | Generates HTML API documentation for Groovy source, and optionally, Java source. |
IdeaModule | Generates an IDEA module file. |
IdeaProject | Generates an IDEA project file. |
IdeaWorkspace | Generates an IDEA workspace file. |
Jar | Assembles a JAR archive. |
Javadoc | Generates HTML API documentation for Java classes. |
JavaExec | Executes a Java application in a child process. |
JettyRun | Deploys an exploded web application to an embedded Jetty web container. Does not require that the web applicationbe assembled into a war, saving time during the development cycle. |
JettyRunWar | Deploys a WAR to an embedded Jetty web container. |
JettyStop | Stops the embedded Jetty web container, if it is running. |
PropertyReportTask | Displays the properties of a project. An instance of this type is used when you execute the |
ProjectReportTask | Displays a list of projects in the build. An instance of this type is used when you execute the |
ScalaCompile | Compiles Scala source files, and optionally, Java source files. |
ScalaDoc | Generates HTML API documentation for Scala source files. |
Sync | Synchronises the contents of a destination directory with some source directories and files. |
Tar | Assembles a TAR archive. |
TaskReportTask | Displays a list of tasks in the project. An instance of this type is used when you execute the |
Test | Executes tests. Supports JUnit (3.8.x or 4.x) or TestNG tests. |
Upload | Uploads the artifacts of a |
War | Assembles a WAR archive. |
Wrapper | Generates scripts (for *nix and windows) which allow you to build your project with Gradle, without having toinstall Gradle. |
Zip | Assembles a ZIP archive. |