Saltar al contenido

Llamar a otra tarea desde una tarea en gradle

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)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *