Gradle - uruchamianie kompilacji

Gradle udostępnia wiersz poleceń do wykonania skryptu kompilacji. Może wykonywać jednocześnie więcej niż jedno zadanie. W tym rozdziale wyjaśniono, jak wykonywać wiele zadań przy użyciu różnych opcji.

Wykonywanie wielu zadań

Możesz wykonać wiele zadań z jednego pliku kompilacji. Gradle może obsłużyć ten plik kompilacji za pomocągradle command. To polecenie skompiluje każde zadanie w kolejności, w jakiej są wymienione, i wykona każde zadanie wraz z zależnościami przy użyciu różnych opcji.

Example- Istnieją cztery zadania - zadanie1, zadanie2, zadanie3 i zadanie4. Zadanie3 i zadanie4 zależy od zadania 1 i zadania 2. Spójrz na poniższy diagram.

W powyższych 4 zadania są od siebie zależne, przedstawione za pomocą symbolu strzałki. Spójrz na poniższy kod. Kopiuj można wkleić dobuild.gradle plik.

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

Możesz użyć następującego kodu do kompilacji i wykonania powyższego zadania.

C:\> gradle task4 test

Wynik:

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

BUILD SUCCESSFUL

Total time: 1 secs

Z wyłączeniem zadań

Wykluczając zadanie z wykonania możesz użyć opcji –x wraz z poleceniem gradle i podać nazwę zadania, które chcesz wykluczyć.

Użyj następującego polecenia, aby wykluczyć task4 z powyższego skryptu.

C:\> gradle task4 -x test

Wynik:

:task1
compiling source
:task4
building the distribution

BUILD SUCCESSFUL

Total time: 1 secs

Kontynuacja kompilacji w przypadku awarii

Gradle przerwie wykonywanie i zakończy kompilację, gdy tylko jakieś zadanie zawiedzie. Możesz kontynuować wykonywanie, nawet jeśli wystąpi awaria. W tym celu musisz użyć opcji –continue z poleceniem gradle. Obsługuje osobno każde zadanie wraz z ich zależnościami. Najważniejsze jest to, że wychwyci każdą napotkaną awarię i zgłosi po zakończeniu wykonywania kompilacji. Załóżmy, że jeśli zadanie się nie powiedzie, kolejne zadania zależne również nie zostaną wykonane.

Wybór kompilacji do wykonania

Po uruchomieniu polecenia gradle szuka pliku kompilacji w bieżącym katalogu. Możesz użyć opcji –b, aby wybrać konkretny plik kompilacji wraz ze ścieżką bezwzględną. Poniższy przykład wybiera projekt Hello frommyproject.gradle plik, który znajduje się w subdir/ przyjrzyj się temu.

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

Możesz użyć następującego polecenia, aby wykonać powyższy skrypt.

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

Wynik:

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

Uzyskiwanie informacji o kompilacji

Gradle udostępnia kilka wbudowanych zadań do pobierania szczegółowych informacji dotyczących zadania i projektu. Może to być przydatne do zrozumienia struktury i zależności kompilacji oraz do rozwiązywania problemów z debugowaniem. Możesz użyć wtyczki raportów projektu, aby dodać zadania do projektu, które będą generować te raporty.

Lista projektów

Możesz wyświetlić hierarchię projektów wybranego projektu i ich projektów podrzędnych za pomocą gradle –q projectsKomenda. Oto przykład, użyj następującego polecenia, aby wyświetlić listę wszystkich projektów w pliku kompilacji.

C:\> gradle -q projects

Wynik:

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

Raport zawiera opis każdego projektu, jeśli został określony. Aby określić opis, możesz użyć następującego polecenia. Wklej go wbuild.gradle plik.

description = 'The shared API for the application'

Lista zadań

Możesz wyświetlić listę wszystkich zadań, które należą do wielu projektów, używając następującego polecenia.

C:\> gradle -q tasks

Wynik:

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

Możesz użyć następującego polecenia, aby wyświetlić informacje o wszystkich zadaniach.

C:\> gradle -q tasks --all

Wynik:

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

Oto lista poleceń w opisie tabeli różnych opcji.

Sr. No. Komenda Opis
1 gradle –q help –task <nazwa zadania> Zawiera informacje o użyciu (takie jak ścieżka, typ, opis, grupa) dotyczące określonego zadania lub wielu zadań.
2 Zależności gradle –q Zawiera listę zależności wybranego projektu.
3 gradle -q api: zależności --configuration <nazwa zadania> Zawiera listę ograniczonych zależności odpowiadających konfiguracji.
4 gradle –q buildEnvironment Zawiera listę zależności skryptów kompilacji.
5 gradle –q dependencyInsight Zapewnia wgląd w określoną zależność.
6 Właściwości Gradle –q Zawiera listę właściwości wybranego projektu.