build gradle execution evaluation

build - Diferencia entre la evaluación y la ejecución de los términos de Gradle



execution evaluation (1)

Como ha visto en la documentación, hay tres fases: Inicialización, Configuración y Ejecución. Cada paso se atraviesa desde el proyecto raíz hasta los subproyectos para compilaciones de proyectos múltiples. AfterEvaluate es útil en el archivo raíz gradle de una compilación de múltiples proyectos cuando desea configurar elementos específicos según la configuración realizada en los subproyectos.

Supongamos que desea agregar una tarea para todos los subproyectos que tienen un complemento específico definido. Si agrega a su proyecto raíz:

subprojects {subProject -> if ( subProject.plugins.hasPlugin(''myplugin'')){ subProject.task(''newTask'')<<{ println "This is a new task" } } }

Esta tarea nunca se agregará ya que el proyecto raíz se configura antes de los subproyectos. Agregar AfterEvaluate lo resolverá por usted:

subprojects {subProject -> afterEvaluate{ if ( subProject.plugins.hasPlugin(''myplugin'')){ subProject.task(''newTask'')<<{ println "This is a new task" } } } }

Soy nuevo en la herramienta de compilación Gradle y ahora estoy leyendo la Guía del usuario, pero no puedo entender completamente la diferencia entre las fases de evaluación y ejecución.

En la fase de configuración, los objetos del proyecto se configuran y se crea DAG, pero después de Evaluar , entonces, ¿qué se evalúa aquí? Evaluación de las tareas dependencias o qué?