Gradle: ejecución de una compilación
Gradle proporciona una línea de comandos para ejecutar un script de compilación. Puede ejecutar más de una tarea a la vez. Este capítulo explica cómo ejecutar múltiples tareas usando diferentes opciones.
Ejecución de varias tareas
Puede ejecutar varias tareas desde un solo archivo de compilación. Gradle puede manejar ese archivo de compilación usandogradle command. Este comando compilará cada tarea en el orden en que se enumeran y ejecutará cada tarea junto con las dependencias utilizando diferentes opciones.
Example- Hay cuatro tareas: tarea1, tarea2, tarea3 y tarea4. Task3 y task4 dependen de la tarea 1 y la tarea2. Eche un vistazo al siguiente diagrama.
En lo anterior, 4 tareas dependen unas de otras representadas con un símbolo de flecha. Eche un vistazo al siguiente código. Copiar puede pegarlo enbuild.gradle archivo.
task task1 << {
println 'compiling source'
}
task task2(dependsOn: task1) << {
println 'compiling unit tests'
}
task task3(dependsOn: [task1, task2]) << {
println 'running unit tests'
}
task task4(dependsOn: [task1, task3]) << {
println 'building the distribution'
}
Puede utilizar el siguiente código para compilar y ejecutar la tarea anterior.
C:\> gradle task4 test
Salida:
:task1
compiling source
:task2
compiling unit tests
:task3
running unit tests
:task4
building the distribution
BUILD SUCCESSFUL
Total time: 1 secs
Excluyendo tareas
Mientras excluye una tarea de la ejecución, puede usar la opción –x junto con el comando gradle y mencionar el nombre de la tarea que desea excluir.
Utilice el siguiente comando para excluir task4 del script anterior.
C:\> gradle task4 -x test
Salida:
:task1
compiling source
:task4
building the distribution
BUILD SUCCESSFUL
Total time: 1 secs
Continuación de la construcción cuando ocurre una falla
Gradle abortará la ejecución y fallará la compilación tan pronto como falle cualquier tarea. Puede continuar la ejecución incluso cuando se produce una falla. Para esto tienes que usar la opción –continuar con el comando gradle. Maneja cada tarea por separado junto con sus dependencias. Y el principal punto importante es que detectará cada falla encontrada e informará al final de la ejecución de la compilación. Suponga que si una tarea falla, las tareas subsiguientes dependientes tampoco se ejecutarán.
Seleccionar qué compilación ejecutar
Cuando ejecuta el comando gradle, busca un archivo de compilación en el directorio actual. Puede usar la opción –b para seleccionar un archivo de construcción particular junto con la ruta absoluta. El siguiente ejemplo seleccionando un saludo de proyecto demyproject.gradle archivo que se encuentra en el subdir/ échale un vistazo.
task hello << {
println "using build file '$buildFile.name' in '$buildFile.parentFile.name'."
}
Puede utilizar el siguiente comando para ejecutar el script anterior.
C:\> gradle -q -b subdir/myproject.gradle hello
Salida:
using build file 'myproject.gradle' in 'subdir'.
Obtención de información de compilación
Gradle proporciona varias tareas integradas para recuperar los detalles de la información sobre la tarea y el proyecto. Esto puede ser útil para comprender la estructura y las dependencias de su compilación y para depurar problemas. Puede usar el complemento de informes del proyecto para agregar tareas a su proyecto, que generarán estos informes.
Listado de proyectos
Puede enumerar la jerarquía de proyectos del proyecto seleccionado y sus subproyectos utilizando gradle –q projectsmando. Aquí está el ejemplo, use el siguiente comando para listar todo el proyecto en el archivo de construcción.
C:\> gradle -q projects
Salida:
------------------------------------------------------------
Root project
------------------------------------------------------------
Root project 'projectReports'
+--- Project ':api' - The shared API for the application
\--- Project ':webapp' - The Web application implementation
To see a list of the tasks of a project, run gradle <project-path>:tasks
For example, try running gradle :api:tasks
El informe muestra la descripción de cada proyecto si se especifica. Puede utilizar el siguiente comando para especificar la descripción. Pégalo en elbuild.gradle archivo.
description = 'The shared API for the application'
Listado de tareas
Puede enumerar todas las tareas que pertenecen a los múltiples proyectos usando el siguiente comando.
C:\> gradle -q tasks
Salida:
------------------------------------------------------------
All tasks runnable from root project
------------------------------------------------------------
Default tasks: dists
Build tasks
-----------
clean - Deletes the build directory (build)
dists - Builds the distribution
libs - Builds the JAR
Build Setup tasks
-----------------
init - Initializes a new Gradle build. [incubating]
wrapper - Generates Gradle wrapper files. [incubating]
Help tasks
----------
buildEnvironment - Displays all buildscript dependencies declared in root project 'projectReports'.
components - Displays the components produced by root project 'projectReports'. [incubating]
dependencies - Displays all dependencies declared in root project 'projectReports'.
dependencyInsight - Displays the insight into a specific dependency in root project 'projectReports'.
help - Displays a help message.
model - Displays the configuration model of root project 'projectReports'. [incubating]
projects - Displays the sub-projects of root project 'projectReports'.
properties - Displays the properties of root project 'projectReports'.
tasks - Displays the tasks runnable from root project 'projectReports'
(some of the displayed tasks may belong to subprojects).
To see all tasks and more detail, run gradle tasks --all
To see more detail about a task, run gradle help --task <task>
Puede utilizar el siguiente comando para mostrar la información de todas las tareas.
C:\> gradle -q tasks --all
Salida:
------------------------------------------------------------
All tasks runnable from root project
------------------------------------------------------------
Default tasks: dists
Build tasks
-----------
clean - Deletes the build directory (build)
api:clean - Deletes the build directory (build)
webapp:clean - Deletes the build directory (build)
dists - Builds the distribution [api:libs, webapp:libs]
docs - Builds the documentation
api:libs - Builds the JAR
api:compile - Compiles the source files
webapp:libs - Builds the JAR [api:libs]
webapp:compile - Compiles the source files
Build Setup tasks
-----------------
init - Initializes a new Gradle build. [incubating]
wrapper - Generates Gradle wrapper files. [incubating]
Help tasks
----------
buildEnvironment - Displays all buildscript dependencies declared in root project 'projectReports'.
api:buildEnvironment - Displays all buildscript dependencies declared in project ':api'.
webapp:buildEnvironment - Displays all buildscript dependencies declared in project ':webapp'.
components - Displays the components produced by root project 'projectReports'. [incubating]
api:components - Displays the components produced by project ':api'. [incubating]
webapp:components - Displays the components produced by project ':webapp'. [incubating]
dependencies - Displays all dependencies declared in root project 'projectReports'.
api:dependencies - Displays all dependencies declared in project ':api'.
webapp:dependencies - Displays all dependencies declared in project ':webapp'.
dependencyInsight - Displays the insight into a specific dependency in root project 'projectReports'.
api:dependencyInsight - Displays the insight into a specific dependency in project ':api'.
webapp:dependencyInsight - Displays the insight into a specific dependency in project ':webapp'.
help - Displays a help message.
api:help - Displays a help message.
webapp:help - Displays a help message.
model - Displays the configuration model of root project 'projectReports'. [incubating]
api:model - Displays the configuration model of project ':api'. [incubating]
webapp:model - Displays the configuration model of project ':webapp'. [incubating]
projects - Displays the sub-projects of root project 'projectReports'.
api:projects - Displays the sub-projects of project ':api'.
webapp:projects - Displays the sub-projects of project ':webapp'.
properties - Displays the properties of root project 'projectReports'.
api:properties - Displays the properties of project ':api'.
webapp:properties - Displays the properties of project ':webapp'.
tasks - Displays the tasks runnable from root project 'projectReports'
(some of the displayed tasks may belong to subprojects).
api:tasks - Displays the tasks runnable from project ':api'.
webapp:tasks - Displays the tasks runnable from project ':webapp'.
Aquí hay una lista de comandos en una tabla de descripción de diferentes opciones.
No Señor. | Mando | Descripción |
---|---|---|
1 | gradle –q help –task <nombre de la tarea> | Proporciona información de uso (como ruta, tipo, descripción, grupo) sobre una tarea específica o múltiples tareas. |
2 | gradle –q dependencias | Proporciona una lista de dependencias del proyecto seleccionado. |
3 | gradle -q api: dependencias --configuration <nombre de la tarea> | Proporciona la lista de dependencias limitadas correspondientes a la configuración. |
4 | gradle –q buildEnvironment | Proporciona la lista de dependencias de scripts de compilación. |
5 | gradle –q dependencyInsight | Proporciona información sobre una dependencia en particular. |
6 | Propiedades de Gradle –q | Proporciona la lista de propiedades del proyecto seleccionado. |