Gradle tutorial description User Guide 1 ~ Chapter 6 gradle User Guide
To use Android Studio, you need this build tool.
This document is a rough example of the notes in the first six chapters of the official user guide.
Download the latest Gradle version (Currently 2.2) and decompress it. Configure the bin directory of Gradle to environment variables so that you can use the gradle command in shell.
Create a directory (a directory named builds is created here), cd, and create a build. gradle file. The following example is edited in build. gradle.
Note:> followed by the gradle command. -The q Parameter disables the log information in some commands, such as gradle-q hello.
Define a task and execute
Task hello {
DoLast {
Println 'Hello world! \ Nadmin'
}
}
> Gradle hello
Define a quick task
Task hello2 <{
Println 'admin \ nHello world! '
}
> Gradle hello2
<Represents doLast {}
Use Groovy
Task upper <{
String someString = 'my _ name'
Println "Original:" + someString
Println "Upper case:" + someString. toUpperCase ()
}
> Gradle upper
Loop Traversal
Task foreach <{
10. times {println "the times is $ it ."}
}
> Gradle foreach
10. times, cyclic condition <10; $ it indicates cyclic variable
Dependent on other tasks
Task intro (dependsOn: hello) <{
Println "I'm Gradle --- intro"
}
> Gradle intro
The dependent task hello will call hello before executing the current task
The dependent task is defined after the current task.
Task taskX (dependsOn: 'tasky ') <{
Println 'taskx'
}
Task <{
Println 'tasky'
}
> Gradle taskX
Dependencies are defined in subsequent tasks. You must add single quotation marks to the task name. In the previous example, you can add a single quotation mark.
Dynamic Task
4. times {counter->
Task "task $ counter" <{
Println "I'm task number $ counter"
}
}
> Gradle test [0-4]
Four tasks are generated in four cycles. The task names are task0, task1, task2, and task3.
Dynamic Tasks depend on Dynamic Tasks
Task0.dependsOn task2, task3
> Gradle task0
Of course, dynamic dependency on static resources and static dependency on Dynamic resources are acceptable.
Symbol <and doFirt, doLast
Task hello3 <{
Println 'Hello global'
}
Hello3.doFirst {
Println 'Hello Venus'
}
Hello3.doLast {
Println 'Hello Mars'
}
Hello3 <{
Println 'Hello Jupiter'
}
> Gradle hello3
There can be multiple doFirst and doLast (or <). DoFirtst is executed first, and doLast is followed. The order here should be: Venus, Earth, Mars, Jupiter
Use external task attributes
Task myTask {
Ext. myProperty = "myValue"
}
Task extraProps <{
Println myTask. myProperty
}
> Gradle extraProps
Use the ant task loadfile1 <{
Def files = file ('../builds'). listFiles (). sort ()
Files. each {File file->
If (file. isFile ()){
Ant. loadfile (srcFile: file, property: file. name)
Println "*** $ file. name ***"
Println "$ {ant. properties [file. name]}"
}
}
}
> Gradle loadfile1
Call the ant. properties task. The file content is output here.
The ant task is used and the Method is called.
Task checksum <{
FileList ('../builds'). each {File file->
Ant. checksum (file: file, property: "cs _ $ file. name ")
Println "$ file. name Checksum: $ {ant. properties [" cs _ $ file. name "]}"
}
}
Task loadfile2 <{
FileList ('../builds/'). each {File file->
Ant. loadfile (srcFile: file, property: file. name)
Println "I'm fond of $ file. name"
}
}
File [] fileList (String dir ){
File (dir). listFiles ({file-> file. isFile ()} as FileFilter). sort ()
}
> Gradle loadfile2
> Gradle checksum
Declared method ---- fileList ()
Default task
DefaultTasks 'clean', 'run'
Task clean <{
Println 'default Cleaning! '
}
Task run <{
Println 'default Running! '
}
Task other <{
Println "I'm not a default task! "
}
> Gradle
Execute the default task without following the Task Name
Configure by DAG
Task distribution <{
Println "We build the zip with version = $ version"
}
Task release (dependsOn: 'distribution ') <{
Println 'we release now'
}
Gradle. taskGraph. whenReady {taskGraph->
If (taskGraph. hasTask (release )){
Version = '1. 0'
} Else {
Version = '1. 0-SNAPSHOT'
}
}
> Gradle distribution
If there is no release-task in the running task graph, the output We build the zip with version = 1.0-SNAPSHOT
> Release
The running task graph contains release-task, and the output is We build the zip with version = 1.0.