Gradle - Exécution d'une compilation

Gradle fournit une ligne de commande pour exécuter le script de construction. Il peut exécuter plusieurs tâches à la fois. Ce chapitre explique comment exécuter plusieurs tâches à l'aide de différentes options.

Exécution de plusieurs tâches

Vous pouvez exécuter plusieurs tâches à partir d'un seul fichier de construction. Gradle peut gérer ce fichier de construction en utilisantgradle command. Cette commande compilera chaque tâche dans l'ordre dans lequel elle est répertoriée et exécutera chaque tâche avec les dépendances en utilisant différentes options.

Example- Il existe quatre tâches: tâche1, tâche2, tâche3 et tâche4. La tâche 3 et la tâche 4 dépendent de la tâche 1 et de la tâche 2. Jetez un œil au diagramme suivant.

Dans les 4 tâches ci-dessus sont dépendantes les unes des autres représentées par un symbole de flèche. Jetez un œil au code suivant. Copier peut le coller dansbuild.gradle fichier.

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'
}

Vous pouvez utiliser le code suivant pour compiler et exécuter la tâche ci-dessus.

C:\> gradle task4 test

Production:

:task1
compiling source
:task2
compiling unit tests
:task3
running unit tests
:task4
building the distribution

BUILD SUCCESSFUL

Total time: 1 secs

Exclure des tâches

Lorsque vous excluez une tâche de l'exécution, vous pouvez utiliser l'option –x avec la commande gradle et mentionner le nom de la tâche que vous souhaitez exclure.

Utilisez la commande suivante pour exclure task4 du script ci-dessus.

C:\> gradle task4 -x test

Production:

:task1
compiling source
:task4
building the distribution

BUILD SUCCESSFUL

Total time: 1 secs

Poursuite de la construction en cas d'échec

Gradle abandonnera l'exécution et échouera la construction dès qu'une tâche échoue. Vous pouvez continuer l'exécution même en cas d'échec. Pour cela, vous devez utiliser l'option –continue avec la commande gradle. Il gère chaque tâche séparément avec leurs dépendances. Et le principal point important est qu'il détectera chaque échec rencontré et signalera à la fin de l'exécution de la construction. Supposons que si une tâche échoue, les tâches suivantes dépendantes ne seront pas non plus exécutées.

Sélection de la construction à exécuter

Lorsque vous exécutez la commande gradle, elle recherche un fichier de construction dans le répertoire actuel. Vous pouvez utiliser l'option –b pour sélectionner un fichier de construction particulier avec un chemin absolu. L'exemple suivant sélection d'un projet bonjour à partir demyproject.gradle fichier qui se trouve dans le subdir/ jetez-y un coup d'œil.

task hello << {
   println "using build file '$buildFile.name' in '$buildFile.parentFile.name'."
}

Vous pouvez utiliser la commande suivante pour exécuter le script ci-dessus.

C:\> gradle -q -b subdir/myproject.gradle hello

Production:

using build file 'myproject.gradle' in 'subdir'.

Obtention des informations de build

Gradle fournit plusieurs tâches intégrées pour récupérer les informations détaillées concernant la tâche et le projet. Cela peut être utile pour comprendre la structure et les dépendances de votre build et pour les problèmes de débogage. Vous pouvez utiliser le plugin de rapport de projet pour ajouter des tâches à votre projet, ce qui générera ces rapports.

Liste des projets

Vous pouvez lister la hiérarchie de projet du projet sélectionné et ses sous-projets en utilisant gradle –q projectscommander. Voici l'exemple, utilisez la commande suivante pour lister tout le projet dans le fichier de construction.

C:\> gradle -q projects

Production:

------------------------------------------------------------
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

Le rapport affiche la description de chaque projet si spécifié. Vous pouvez utiliser la commande suivante pour spécifier la description. Collez-le dans lebuild.gradle fichier.

description = 'The shared API for the application'

Liste des tâches

Vous pouvez répertorier toutes les tâches appartenant aux différents projets à l'aide de la commande suivante.

C:\> gradle -q tasks

Production:

------------------------------------------------------------
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>

Vous pouvez utiliser la commande suivante pour afficher les informations de toutes les tâches.

C:\> gradle -q tasks --all

Production:

------------------------------------------------------------
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'.

Voici une liste de commandes dans une table de description des différentes options.

Sr. No. Commander La description
1 gradle –q help –task <nom de la tâche> Fournit les informations d'utilisation (telles que le chemin, le type, la description, le groupe) sur une tâche spécifique ou plusieurs tâches.
2 dépendances gradle –q Fournit une liste des dépendances du projet sélectionné.
3 gradle -q api: dependencies --configuration <nom de la tâche> Fournit la liste des dépendances limitées respectives à la configuration.
4 gradle –q buildEnvironment Fournit la liste des dépendances de script de construction.
5 gradle –q dependencyInsight Fournit un aperçu d'une dépendance particulière.
6 Propriétés Gradle –q Fournit la liste des propriétés du projet sélectionné.