Gradle - Ausführen eines Builds

Gradle bietet eine Befehlszeile zum Ausführen des Build-Skripts. Es kann mehr als eine Aufgabe gleichzeitig ausführen. In diesem Kapitel wird erläutert, wie Sie mehrere Aufgaben mit unterschiedlichen Optionen ausführen.

Mehrere Aufgaben ausführen

Sie können mehrere Aufgaben aus einer einzigen Build-Datei ausführen. Gradle kann diese Build-Datei mit verarbeitengradle command. Dieser Befehl kompiliert jede Aufgabe in der Reihenfolge, in der sie aufgelistet sind, und führt jede Aufgabe zusammen mit den Abhängigkeiten mit verschiedenen Optionen aus.

Example- Es gibt vier Aufgaben - Aufgabe1, Aufgabe2, Aufgabe3 und Aufgabe4. Aufgabe3 und Aufgabe4 hängen von Aufgabe 1 und Aufgabe 2 ab. Schauen Sie sich das folgende Diagramm an.

In den obigen 4 Aufgaben sind voneinander abhängig, dargestellt durch ein Pfeilsymbol. Schauen Sie sich den folgenden Code an. Kopieren kann es einfügenbuild.gradle Datei.

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

Sie können den folgenden Code zum Kompilieren und Ausführen der obigen Aufgabe verwenden.

C:\> gradle task4 test

Ausgabe:

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

BUILD SUCCESSFUL

Total time: 1 secs

Aufgaben ausschließen

Während Sie eine Aufgabe von der Ausführung ausschließen, können Sie die Option –x zusammen mit dem Befehl gradle verwenden und den Namen der Aufgabe angeben, die Sie ausschließen möchten.

Verwenden Sie den folgenden Befehl, um task4 vom obigen Skript auszuschließen.

C:\> gradle task4 -x test

Ausgabe:

:task1
compiling source
:task4
building the distribution

BUILD SUCCESSFUL

Total time: 1 secs

Fortsetzung des Builds bei Auftreten eines Fehlers

Gradle bricht die Ausführung ab und schlägt den Build fehl, sobald eine Aufgabe fehlschlägt. Sie können die Ausführung auch dann fortsetzen, wenn ein Fehler auftritt. Dazu müssen Sie die Option –continue mit dem Befehl gradle verwenden. Es behandelt jede Aufgabe separat zusammen mit ihren Abhängigkeiten. Der wichtigste Punkt ist, dass jeder aufgetretene Fehler abgefangen und am Ende der Ausführung des Builds gemeldet wird. Angenommen, wenn eine Aufgabe fehlschlägt, werden auch die abhängigen nachfolgenden Aufgaben nicht ausgeführt.

Auswählen des auszuführenden Builds

Wenn Sie den Befehl gradle ausführen, wird im aktuellen Verzeichnis nach einer Build-Datei gesucht. Mit der Option –b können Sie eine bestimmte Build-Datei zusammen mit dem absoluten Pfad auswählen. Das folgende Beispiel wählt ein Projekt ausmyproject.gradle Datei, die sich in der befindet subdir/ Schau es dir an.

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

Mit dem folgenden Befehl können Sie das obige Skript ausführen.

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

Ausgabe:

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

Build-Informationen abrufen

Gradle bietet mehrere integrierte Aufgaben zum Abrufen der Informationsdetails zur Aufgabe und zum Projekt. Dies kann hilfreich sein, um die Struktur und die Abhängigkeiten Ihres Builds zu verstehen und Probleme zu debuggen. Sie können das Projektbericht-Plugin verwenden, um Ihrem Projekt Aufgaben hinzuzufügen, die diese Berichte generieren.

Projekte auflisten

Mit können Sie die Projekthierarchie des ausgewählten Projekts und seiner Unterprojekte auflisten gradle –q projectsBefehl. In diesem Beispiel verwenden Sie den folgenden Befehl, um alle Projekte in der Build-Datei aufzulisten.

C:\> gradle -q projects

Ausgabe:

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

Der Bericht zeigt die Beschreibung jedes Projekts, falls angegeben. Mit dem folgenden Befehl können Sie die Beschreibung angeben. Fügen Sie es in diebuild.gradle Datei.

description = 'The shared API for the application'

Aufgaben auflisten

Mit dem folgenden Befehl können Sie alle Aufgaben auflisten, die zu mehreren Projekten gehören.

C:\> gradle -q tasks

Ausgabe:

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

Mit dem folgenden Befehl können Sie die Informationen aller Aufgaben anzeigen.

C:\> gradle -q tasks --all

Ausgabe:

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

Hier finden Sie eine Liste von Befehlen in einer Tabellenbeschreibung mit verschiedenen Optionen.

Sr. Nr. Befehl Beschreibung
1 gradle –q help –task <Aufgabenname> Stellt die Verwendungsinformationen (wie Pfad, Typ, Beschreibung, Gruppe) zu einer bestimmten Aufgabe oder mehreren Aufgaben bereit.
2 gradle –q Abhängigkeiten Bietet eine Liste der Abhängigkeiten des ausgewählten Projekts.
3 gradle -q api: Abhängigkeiten - Konfiguration <Aufgabenname> Stellt die Liste der eingeschränkten Abhängigkeiten für die Konfiguration bereit.
4 gradle –q buildEnvironment Stellt die Liste der Build-Skript-Abhängigkeiten bereit.
5 gradle –q dependencyInsight Bietet einen Einblick in eine bestimmte Abhängigkeit.
6 Gradle-q-Eigenschaften Stellt die Liste der Eigenschaften des ausgewählten Projekts bereit.