Learn Java

Tasks Dependency And Dynamic Tasks

Basic

task_dependency.gradle:

task hello << {
    println 'Hello world!'
}
task intro(dependsOn: hello) << {
    println "I'm Gradle"
}

Run command gradle -q -b task_dependency.gradle intro to see the result:

Hello world!
I'm Gradle

We know task intro depends on task hello.

Dynamic tasks

The power of Groovy can be used for more than defining what a task does. For example, you can also use it to dynamically create tasks.

dynamic_tasks.gradle:

4.times { counter ->
    task "task$counter" << {
        println "I'm task number $counter"
    }
}

4.times { counter ->
    task "taskk$counter" << {
        println "I'm task number $counter"
    }
}
taskk0.dependsOn taskk2, taskk3

Run command gradle -q task1 -b dynamic_tasks.gradle to see the result:

I'm task number 1

Run command gradle -q taskk0 -b dynamic_tasks.gradle to see the result:

I'm task number 2
I'm task number 3
I'm task number 0