Puede hacer que una tarea dependa de otra tarea,
lo que significa que cuando una tarea finaliza solo entonces se iniciará la otra tarea.
Cada tarea se diferencia con un nombre de tarea.
La colección de nombres de tareas se refiere a su colección de tareas.
Para referirse a una tarea en otro proyecto, debe usar la ruta del proyecto como un prefijo al nombre de tarea respectivo.
El siguiente ejemplo agrega una dependencia de taskX a taskY.
```
task taskX << {
println 'taskX'
}
task taskY(dependsOn: 'taskX') << {
println "taskY"
}
```
# utilizando objetos de tareas en lugar de nombres
```
task taskY << {
println 'taskY'
}
task taskX << {
println 'taskX'
}
EJECUTAR
gradle –q taskY
```
# Mediante cierres
En este caso, la tarea se libera a través del cierre.
Si utiliza cierre en el script de compilación que debe devolver una sola tarea o colección de objetos de tareas.
El siguiente ejemplo agrega una dependencia de taskX a todas las tareas del proyecto,
cuyo nombre comienza con 'lib' .
```
task taskX << {
println 'taskX'
}
taskX.dependsOn {
tasks.findAll {
task → task.name.startsWith('lib')
}
}
task lib1 << {
println 'lib1'
}
task lib2 << {
println 'lib2'
}
task notALib << {
println 'notALib'
}
//salida
lib1
lib2
taskX
```
# Agregar una descripción a una tarea
```
task copy(type: Copy) {
description 'Copies the resource directory to the target directory.'
from 'resources'
into 'target'
include('**/*.txt', '**/*.xml', '**/*.properties')
println("description applied")
}
//salida
C:\> gradle –q copy
Si el comando se ejecuta con éxito, obtendrá la siguiente salida.
description applied
```
# Saltar tareas
Las tareas de omisión pueden realizarse pasando un cierre de predicado.
Esto solo es posible si se ejecuta el método de una tarea o un cierre lanzando una
StopExecutionException antes de que se ejecute el trabajo real de una tarea.
```
task eclipse << {
println 'Hello Eclipse'
}
// #1st approach - closure returning true, if the task should be executed, false if not.
eclipse.onlyIf {
project.hasProperty('usingEclipse')
}
// #2nd approach - alternatively throw an StopExecutionException() like this
eclipse.doFirst {
if(!usingEclipse) {
throw new StopExecutionException()
}
}
```