Task ordering
If Task1 depends on Task2, then Gradle makes sure that Task2 will always execute before Task1. However, it does not make sure the ordering of tasks. That is, it will not ensure that Task2 will execute immediately before Task1. Between the execution of Task2 and Task1, other tasks might be executed.
As shown in the preceding diagram, Task1 depends on Task2 and Task3. Task4 is an independent task. If you execute gradle Task1 Task4
, the execution flow will be Task2, Task3, Task1, and then Task4, as if a task depends on multiple tasks. Gradle executes the dependent tasks in alphabetical order.
Along with dependsOn
, Gradle provides some additional categories of ordering. For example, after the execution of the last task, you might want to clean the temporary resources, which were created during the build process. To enable this type of ordering, Gradle provides the following options:
shouldRunAfter
mustRunAfter
finalyzedBy
(more strict in nature)
Let's take a look at the...