Gradle - Menjalankan Build
Gradle menyediakan baris perintah untuk menjalankan skrip build. Itu dapat menjalankan lebih dari satu tugas dalam satu waktu. Bab ini menjelaskan cara menjalankan beberapa tugas menggunakan opsi berbeda.
Menjalankan Banyak Tugas
Anda dapat menjalankan banyak tugas dari satu file build. Gradle bisa menangani file build itu menggunakangradle command. Perintah ini akan mengkompilasi setiap tugas dalam urutan yang terdaftar dan menjalankan setiap tugas bersama dengan dependensi menggunakan opsi yang berbeda.
Example- Ada empat tugas - tugas1, tugas2, tugas3, dan tugas4. Task3 dan task4 bergantung pada tugas 1 dan tugas2. Perhatikan diagram berikut.
Dalam 4 tugas di atas saling bergantung yang diwakili dengan simbol panah. Perhatikan kode berikut. Salin dapat menempelkannya kebuild.gradle mengajukan.
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'
}
Anda dapat menggunakan kode berikut untuk menyusun dan menjalankan tugas di atas.
C:\> gradle task4 test
Keluaran:
:task1
compiling source
:task2
compiling unit tests
:task3
running unit tests
:task4
building the distribution
BUILD SUCCESSFUL
Total time: 1 secs
Tidak Termasuk Tugas
Saat mengecualikan tugas dari eksekusi, Anda dapat menggunakan opsi –x bersama dengan perintah gradle dan menyebutkan nama tugas, yang ingin Anda kecualikan.
Gunakan perintah berikut untuk mengecualikan task4 dari skrip di atas.
C:\> gradle task4 -x test
Keluaran:
:task1
compiling source
:task4
building the distribution
BUILD SUCCESSFUL
Total time: 1 secs
Melanjutkan Build Saat Terjadi Kegagalan
Gradle akan membatalkan eksekusi dan gagal membangun segera setelah ada tugas yang gagal. Anda dapat melanjutkan eksekusi bahkan saat terjadi kegagalan. Untuk ini, Anda harus menggunakan opsi –lanjutkan dengan perintah gradle. Ini menangani setiap tugas secara terpisah bersama dengan ketergantungannya. Dan poin penting utamanya adalah ia akan menangkap setiap kegagalan yang dihadapi dan melaporkan pada akhir eksekusi build. Misalkan jika suatu tugas gagal maka tugas selanjutnya yang bergantung juga tidak akan dijalankan.
Memilih Build Yang Akan Dijalankan
Saat Anda menjalankan perintah gradle, ia mencari file build di direktori saat ini. Anda dapat menggunakan opsi –b untuk memilih file build tertentu bersama dengan jalur absolut. Contoh berikut memilih proyek hello frommyproject.gradle file yang terletak di subdir/ lihatlah itu.
task hello << {
println "using build file '$buildFile.name' in '$buildFile.parentFile.name'."
}
Anda dapat menggunakan perintah berikut untuk menjalankan skrip di atas.
C:\> gradle -q -b subdir/myproject.gradle hello
Keluaran:
using build file 'myproject.gradle' in 'subdir'.
Memperoleh Informasi Build
Gradle menyediakan beberapa tugas bawaan untuk mengambil detail informasi terkait tugas dan proyek. Ini dapat berguna untuk memahami struktur dan dependensi build Anda dan untuk masalah debugging. Anda dapat menggunakan plugin laporan proyek untuk menambahkan tugas ke proyek Anda, yang akan menghasilkan laporan ini.
Daftar Proyek
Anda dapat membuat daftar hierarki proyek dari proyek yang dipilih dan sub proyek mereka menggunakan gradle –q projectsperintah. Berikut adalah contohnya, gunakan perintah berikut untuk mencantumkan semua proyek dalam file build.
C:\> gradle -q projects
Keluaran:
------------------------------------------------------------
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
Laporan tersebut menunjukkan deskripsi setiap proyek jika ditentukan. Anda dapat menggunakan perintah berikut untuk menentukan deskripsi. Tempel dibuild.gradle mengajukan.
description = 'The shared API for the application'
Daftar Tugas
Anda dapat membuat daftar semua tugas yang termasuk dalam beberapa proyek dengan menggunakan perintah berikut.
C:\> gradle -q tasks
Keluaran:
------------------------------------------------------------
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>
Anda dapat menggunakan perintah berikut untuk menampilkan informasi dari semua tugas.
C:\> gradle -q tasks --all
Keluaran:
------------------------------------------------------------
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'.
Berikut adalah beberapa daftar perintah dalam deskripsi tabel opsi yang berbeda.
No Sr | Perintah | Deskripsi |
---|---|---|
1 | gradle –q bantuan –tugas <nama tugas> | Memberikan informasi penggunaan (seperti jalur, jenis, deskripsi, grup) tentang tugas tertentu atau beberapa tugas. |
2 | gradle –q dependensi | Memberikan daftar dependensi dari proyek yang dipilih. |
3 | gradle -q api: dependencies --configuration <nama tugas> | Menyediakan daftar dependensi terbatas masing-masing untuk konfigurasi. |
4 | gradle –q buildEnvironment | Menyediakan daftar dependensi skrip build. |
5 | gradle –q dependencyInsight | Memberikan wawasan tentang ketergantungan tertentu. |
6 | Gradle –q properti | Memberikan daftar properti dari proyek yang dipilih. |