Gradle is an open-source, general-purpose build tool. It is popular in the Java community and is the preferred build tool for Android.
repositories
such as npm.If you want to learn more about Gradle features can look at the Overview part of the Gradle User Guide.
If you want to try Gradle can check out the guides here. You can walk through a Java quickstart guide, learn how use Gradle for the first time, and migrate from another build tool.
Requirements: Installed Java JDK or JRE (version 7 or higher for Gradle 3.x version)
Installation steps:
GRADLE_HOME
environment variable. This variable should point to the unpacked files from the previous step.GRADLE_HOME/bin
to your PATH
environment variable, so you can run Gradle from the command line interface (CLI)gradle -v
in the CLI. The output should contain the installed Gradle version and the current Gradle configuration detailsMore information can be found in the official user guide
Gradle tasks can be written using Groovy code from inside a projects build.gradle file. These tasks can then be executed using > gradle [taskname]
at the terminal or by executing the task from within an IDE such as Eclipse.
To create the Hello World example in gradle we must define a task that will print a string to the console using Groovy. We will use Groovy's printLn
to call Java's System.out.printLn
method to print the text to the console.
build.gradle
task hello {
doLast {
println 'Hello world!'
}
}
We can then execute this task by using > gradle hello
or > gradle -q hello
. The -q
is used to suppress gradle log messages so that only the output of the task will be shown.
Output of > gradle -q hello
:
> gradle -q hello
Hello world!
Here are the steps required to install Gradle plugin in Eclipse:
Users of homebrew can install gradle by running
brew install gradle
Users of SdkMan can install Gradle by running:
sdk install gradle
Install specific version
sdk list gradle
sdk install gradle 2.14
Switch versions
sdk use gradle 2.12
First of all: operator <<
(leftShift) is equivalent of doLast {closure}
. From gradle 3.2 it is deprecated. All the task code are writing in a build.gradle.
A task represents some atomic piece of work which a build performs. This might be compiling some classes, creating a JAR, generating Javadoc, or publishing some archives to a repository.
Gradle supports two big types of tasks: simple and enhanced.
Let's observe some task definition styles:
task hello {
doLast{
//some code
}
}
Or the:
task(hello) {
doLast{
//some code
}
}
This tasks above are equivalents. Also, you can provide some extensions to the task, such as: dependsOn
,mustRunAfter
, type
etc.
You can extend task by adding actions after task definition, like this:
task hello {
doLast{
println 'Inside task'
}
}
hello.doLast {
println 'added code'
}
When we'll execute this we got:
> gradle -q hello
Inside task
added code
Let's talk about two big types of task.
Tasks which we define with an action closure:
task hello {
doLast{
println "Hello from a simple task"
}
}
Enhanced it is a task with a preconfigured behavior. All plugins that you using in your project are the extended, or the enhanced tasks. Let's create ours and you will understand how it works:
task hello(type: HelloTask)
class HelloTask extends DefaultTask {
@TaskAction
def greet() {
println 'hello from our custom task'
}
}
Also, we can pass parameters to our task, like this:
class HelloTask extends DefaultTask {
String greeting = "This is default greeting"
@TaskAction
def greet() {
println greeting
}
}
And from now on we can rewrite our task like so:
//this is our old task definition style
task oldHello(type: HelloTask)
//this is our new task definition style
task newHello(type: HelloTask) {
greeting = 'This is not default greeting!'
}
When we'll execute this we got:
> gradle -q oldHello
This is default greeting
> gradle -q newHello
This is not default greeting!
All questions about development gradle plugins onto official site