es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo ejecutar una tarea antes de compilar en Gradle 2021 con sintaxis Kotlin en un proyecto de Android.

Leo muchas respuestas a varias preguntas como esta, pero todas son muy antiguas y utilizan una sintaxis arcaica/obsoleta en groovy y/o no son adecuadas para proyectos de Android.

Tengo una tarea.

¿Cómo puedo ejecutarla cuando comienza la construcción en un archivo app/build.gradle.kts de Android?

He impreso los nombres de las tareas tasks y project.tasks y he intentado:


tasks.named("build").dependsOn(":asd")
tasks.named("app:build").dependsOn(":asd")
tasks.named(":app:build").dependsOn(":asd")
project.tasks.named("build").dependsOn(":asd")
project.tasks.named("app:build").dependsOn(":asd")
project.tasks.named(":app:build").dependsOn(":asd")

O bien falla con Tarea no encontrada en el proyecto o no hace nada.

He probado con doFirst, doLast y ninguno (directamente exec) y aún así no funciona.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para ejecutar la tarea llamada “asd” cuando se inicie la compilación en un archivo Android app/build.gradle.kts, puedes utilizar la siguiente sintaxis:

    tasks.whenEvaluated {
        tasks.named("build").dependsOn(":asd")
    }
    

    Esto asegurará que la tarea “asd” se ejecute antes de que se ejecute la tarea “build”. Asegúrate de que el nombre de la tarea esté escrito correctamente y que la tarea esté definida en tu archivo build.gradle.kts.

    Además, ten en cuenta que los bloques doFirst y doLast se ejecutan cuando se ejecuta la tarea, no cuando se evalúa. Por lo tanto, no es adecuado para establecer dependencias entre tareas. En su lugar, utiliza el método dependsOn.

Comments are closed.