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