./gradle tasks
membuat daftar "beberapa" tugas. Melihat
http://gradle.org/docs/current/userguide/java_plugin.html ada yang tersembunyi yang tidak terdaftar. Selain itu, plugin lain tidak akan memiliki grafik dependensi yang bagus di antara tugas.
Apakah ada cara untuk melakukannya
- daftar semua tugas di semua plugin dengan gradle
- daftar tugas dan tugas apa yang mereka andalkan (seperti maven
dependency:tree
tetapi untuk tugas)
untuk ini, Anda dapat menggunakan
--dry-run
(atau-m
) opsi yang mencantumkan tugas yang dijalankan untuk perintah tertentu, tetapi tidak menjalankan perintah, mis.Anda dapat menemukan lebih banyak di sini
sumber
Anda dapat mencoba plugin com.dorongold.task-tree dengan penggunaan sederhana:
Contoh hasil dari readme :
sumber
--no-repeat
. Sumber: github.com/dorongold/gradle-task-treeAnda dapat memasukkan ini ke dalam
build.gradle
:atau ini ke Anda
build.gradle.kts
:gradle.taskGraph.whenReady(closureOf<TaskExecutionGraph> { println("Found task graph: $this") println("Found " + allTasks.size + " tasks.") allTasks.forEach { task -> println(task) task.dependsOn.forEach { dep -> println(" - $dep") } } })
Kemudian jalankan tugas Anda dengan gradle:
Dan Anda akan melihat ini:
sumber
A <- B <- (C and D)
ini, ini akan menunjukkan kepada AndaB-A, C-B, D-B
. Ini masih membantu beberapa!pohon tugas gradle dapat divisualisasikan dengan
gradle tasks --all
atau mencoba plugin berikut:Grafik Gradle dan Talaiot: Lihat ini: https://proandroiddev.com/graphs-gradle-and-talaiot-b0c02c50d2b1 blog karena mencantumkan tugas dan dependensi yang dilihat secara grafis. Ini menggunakan alat Graphviz terbuka gratis Gephi ( https://gephi.org/features/ )
gradle-task-tree : https://github.com/dorongold/gradle-task-tree dan
gradle-visteg : https://github.com/mmalohlava/gradle-visteg
plugin gradle-visteg : File yang dihasilkan dapat diproses setelahnya melalui
dot
utilitas Graphviz .Misalnya , gambar png dihasilkan sebagai berikut:
cd build/reports/; dot -Tpng ./visteg.dot -o ./visteg.dot.png
Untuk informasi lebih lanjut, silakan kunjungi halaman muka Graphviz .
Tugas apa pun yang sebenarnya digunakan untuk menjalankan tugas (misalnya
build
:) dapat dilihat di halaman HTML yang bagus menggunakan--profile
opsigradle --profile clean build
Setelah ini selesai, buka folder build / reports / profile dan telusuri file .html. Anda akan melihat resolusi dependensi dan info lainnya dengan waktu yang dibutuhkan di halaman html yang bagus.
sumber
Anda dapat mengakses grafik tugas secara terprogram untuk memeriksanya dalam skrip build menggunakan Gradle.getTaskGraph ()
sumber
Saat multiproyek Anda berkembang, solusi yang saya tandai sebagai benar tumbuh sedikit tidak lemah dan sulit dibaca
Sebaliknya, saya telah beralih untuk melihat proyek tertentu sehingga lebih mudah
di mana 'full-httpproxy' adalah nama proyek saya (dan direktori seperti biasa).
Namun saya penasaran bagaimana membuat daftar tugas pada proyek master / root dan memiliki pertanyaan yang luar biasa di sini juga
Bagaimana cara mencantumkan semua tugas untuk proyek master hanya di gradle?
karena melakukan itu sepertinya tidak mungkin sekarang.
sumber
Mengikuti jawaban oleh cstroe, berikut ini juga mencetak file input dan output dari setiap tugas Gradle. Ini berguna karena dependensi terkadang ditentukan oleh hubungan input / output. Yaitu, jika tugas B menggunakan keluaran dari tugas A, jawaban cstroe tidak akan menunjukkan ketergantungannya. Berikut ini sangat primitif tetapi menampilkan daftar file input dan output untuk setiap tugas:
sumber
Anda juga dapat menambahkan plugin berikut untuk build.gradle lingkungan lokal Anda, https://github.com/dorongold/gradle-task-tree
sumber
Ada plugin baru untuk ini:
Kemudian Anda bisa mengetik:
dan dapatkan sesuatu seperti ini:
Plugin juga dapat menunjukkan urutan tugas yang akan dijalankan:
Info selengkapnya ada di dokumen plugin .
Pengungkapan penuh: Saya penulis gradle-taskinfo.
sumber