Solución:
Como se sugirió, un método sería agregar un finalizador para la tarea
task beta << {
println 'Hello from beta'
}
task alpha << {
println "Hello from alpha"
}
// some condition
if (project.hasProperty("doBeta")) {
alpha.finalizedBy beta
}
Luego, podemos ejecutar la otra tarea si es necesario. En cuanto a ejecutar tareas de otras tareas, no puede hacer eso. La declaración de la tarea es declarativa, no imperativa. Entonces, una tarea puede depender de otra tarea pero no pueden ejecutar otra tarea.
$ gradle -q alpha
Hello from alpha
$ gradle -q alpha -PdoBeta
Hello from alpha
Hello from beta
Puedes usar
a.dependsOn 'b'
O
a.dependsOn b
O
task a(type: Exec, dependsOn: 'b') { ... }
etc
Ver agregar dependencias a las tareas
Para resumir y combinar las respuestas de @JBirdVegas y @ lance-java, usando no obsoleto doLast
en lugar de leftShift (<<
):
task beta {
doLast {
println 'Hello from beta'
}
}
task alpha {
doLast {
println 'Hello from alpha'
}
}
// some condition
if (project.hasProperty('doBeta')) {
alpha.finalizedBy beta // run 'beta' after 'alpha'
// or
// alpha.dependsOn beta // run 'beta' before 'alpha'
}
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)