@OliverCharlesworth silakan gunakan tombol tutup untuk menandai jawaban sebagai duplikat
030
1
@ user3286701 mungkin Anda bisa menerima salah satu jawabannya?
030
6
gradle dependenciesharus bekerja. Ini gila bagaimana semua orang gradlew app:dependenciesmungkin karena Android.
prayagupd
2
@prayagupd Ini seharusnya jawabannya. Pertanyaannya adalah tentang gradle. Setelah membaca jawaban yang berperingkat sangat tinggi, saya membuka terminal dan menuju direktori proyek umum yang menggunakan gradle. Saya mengeksekusi 'gradle app: dependencies' dan mendapatkan kesalahan 'Build gagal' meskipun saya tidak berencana membangun apa pun. Proyek saya dibangun dengan baik dan saya hanya ingin melihat dependensi.
ka3ak
Jawaban:
604
Untuk Android, gunakan baris ini
gradle app:dependencies
atau jika Anda memiliki pembungkus gradle:
./gradlew app:dependencies
di mana appmodul proyek Anda.
Selain itu, jika Anda ingin memeriksa apakah sesuatu compilevs testCompilevs androidTestCompileketergantungan serta apa yang menariknya:
Ah, saya harus meletakkan nama modul di sana. Itu sebabnya ... Terima kasih!
Jenix
Baru mulai belajar gradle sekarang, jadi sedikit bingung. Dapatkah saya memperlakukan gradlew sebagai gradle, maksud saya, dapatkah saya memasukkan opsi / perintah yang sama seperti gradle dengan gradlew?
Jenix
1
@ Jenix ya, jika Anda menggunakan pembungkus hanya gunakan ./gradlewdi tempatgradle
Chad Bingham
2
Saya mendapatkan kesalahan Project 'app' not found in root projectsaat menjalankan perintah ini. Namun solusi Benjamins berhasil.
Krock
5
Bahkan ./gradlew :dependenciesakan berhasil. Ini akan mencantumkan dependensi untuk semua proyek Anda, tetapi mudah untuk menemukan yang tepat.
dirkjot
240
Anda bisa membuat pohon ketergantungan dengan perintah gradle dependencies. Untuk informasi lebih lanjut, baca bagian 11.6.4 Mendaftarkan dependensi proyek dalam panduan pengguna online.
Ketika saya melakukan ini dengan proyek Android saya, yang saya dapatkan adalah output ini: pastebin.com/fHFigAuY Saran?
Nilzor
3
@Nilzor Anda mungkin menjalankan perintah di direktori yang salah (yang tidak berisi build.gradlefile) atau file build Anda tidak menggunakan plugin apa pun.
Benjamin Muschko
6
Anda bisa mendapatkan dependensi untuk proyek tertentu menggunakan gradle: project: dependencies
bagaimana cara mendapatkan tampilan "proyek bertahap"?
user3526
1
@ user3526 klik pada tag "gradle" yang ditemukan di sisi kanan layar Anda. Lihatlah gambar terlampir untuk referensi
Nicolás Carrasco
2
Saya menemukan bahwa ini membuat daftar datar di AS 3.2.0, bukan pohon. Namun varian baris perintah membuat pohon.
Tom
5
@ Tom menjalankan tugas 'depency' di bawah kategori 'help' bukan 'android'. Ini ditampilkan sebagai pohon
Maxim Berezovsky
27
Seringkali grafik lengkap test,, compiledan androidTestCompiledependensi terlalu banyak untuk diperiksa bersama. Jika Anda hanya menginginkan compilegrafik dependensi, Anda dapat menggunakan:
Catatan: compiletelah ditinggalkan dalam versi Gradle yang lebih baru dan di versi yang lebih baru Anda disarankan untuk mengalihkan semua compiledependensi Anda ke implementation. Silakan lihat jawaban ini di sini
Secara umum output dari plugin ini dapat ditemukan di direktori build / reports / dependency-graph dan berisi tiga file (.dot | .png | .svg) jika Anda menggunakan versi plugin 0.5.0 .
Contoh grafik ketergantungan dalam aplikasi nyata ( Catur Jam ):
Hei David, saya melakukan seperti yang diperintahkan dalam instruksi plugin. Saya menerapkan plugin dalam proyek gradle tetapi saya tidak melihat folder laporan di direktori build. Adakah yang perlu kita lakukan selain membangun dan menjalankan proyek?
Banyak hal telah bergerak maju di Gradle jadi saya percaya pertanyaan ini pantas mendapat jawaban lain.
Sejak Gradle 4.3, " build scan " diperkenalkan. Semua info yang relevan tersedia di dokumen Gradle ( 1 , 2 ). Bagi saya, ini sekarang tampaknya menjadi cara termudah untuk memeriksa dependensi Anda (dan umumnya build Anda) dengan cara yang jelas dan terorganisir.
Mereka sangat mudah dibuat, jalankan saja:
gradle build --scan
(atau ./gradlew build --scanjika Anda menggunakan pembungkus)
Ini menghasilkan tautan yang dibuat secara acak di mana Anda dapat melihat pemindaian Anda. Saat membuka tautan itu, Anda memasukkan email Anda dan mendapatkan kendali penuh atas tautan tersebut: mis. bagikan atau hapus itu. Telah mendapat banyak info tentang bangunan Anda , bukan hanya dependensi. Anda dapat melihat dependensi Anda, hierarki mereka, repositori yang digunakan untuk mendapatkannya tetapi juga banyak hal lain tentang build Anda, yaitu kinerjanya (yang menarik pada build kompleks besar), pengujian Anda, bahkan output konsol Anda dan Anda konfigurasi sistem, yang digunakan JDK dan JVM, ukuran tumpukan maksimum dll.
Ini adalah printscreen dari proyek tiruan:
Pemindaian build adalah catatan build yang dapat dibagikan yang memberikan wawasan tentang apa yang terjadi dan mengapa. Anda dapat membuat pemindaian build di scans.gradle.com gratis.
Namun, perlu diketahui bahwa info untuk proses pembuatan Anda akan dikirim ke server Gradle. Anda memiliki kontrol penuh untuk menghapusnya ketika Anda selesai dengan inspeksi Anda.
Akhirnya, Anda dapat menggunakan build scan dengan versi Gradle lebih awal dari 4.3 juga, Anda hanya perlu menambahkan plugin scan secara manual di buildscript Anda.
Sunting :
Memasukkan beberapa umpan balik dari komentar beberapa catatan tambahan:
1) Sangat sulit untuk melakukan ini secara tidak sengaja atau tanpa memahami bahwa beberapa info untuk bangunan Anda akan online (pribadi untuk Anda, dengan kemampuan untuk menghapusnya, tetapi masih online) ).
Saat menjalankan gradle build --scanpesan berikut muncul:
Publishing a build scan to scans.gradle.com requires accepting the Gradle
Terms of Service defined at https://gradle.com/terms-of-service. Do you
accept these terms? [yes, no]
Anda harus menulis secara eksplisit yesdan kemudian pesan itu berlanjut:
2) Di Gradle Enterprise Anda dapat meng-host pemindaian gradle di server Anda sendiri. Namun saya tidak memiliki pengalaman dalam hal ini dan pendekatan yang saya usulkan adalah tentang distribusi Gradle standar, menggunakan server Gradle untuk pemindaian build Anda.
3) Gradle sendiri mempromosikan pemindaian build sebagai cara untuk mengatasi sebagian besar masalah build Anda.
Maaf untuk membatalkan jawaban, tetapi IMO itu tidak menjawab pertanyaan dan itu tidak cukup jelas memperingatkan bahwa dengan gradle build --scanAnda mempublikasikan detail bangunan Anda di suatu tempat di internet - dan untuk menghapusnya Anda harus mengaitkannya dengan alamat email yang berfungsi.
Michal
1
Hei Michal, Anda dipersilakan untuk downvote jika Anda merasa seperti itu. Namun saya harus bertanya, apakah Anda mencobanya? Ketika menjalankan gradle build --scancmd, Anda diminta: Publishing a build scan to scans.gradle.com requires accepting the Gradle Terms of Service defined at https://gradle.com/terms-of-service. Do you accept these terms? [yes, no]. Anda harus menulis secara manual yes. Tepat setelah itu, Anda mendapatkan pesan: Publishing build scan... https://gradle.com/s/a12en0dasdu(secara acak masukkan tautan dari jenis yang sama). Jadi saya yakin itu memperingatkan Anda dengan tepat sebelumnya. (1/2)
penjahat
1
Anda dapat mengunjungi tautan dan menghapus pemindaian segera, tanpa email atau apa pun. Sebagai jawaban, saya yakin itu menjawab pertanyaan . Bahkan, itu menunjukkan Anda info tambahan tentang dependensi Anda (dan bekerja ekstra: info tambahan untuk seluruh build juga) dibandingkan dengan pendekatan lain. Jika Anda tidak menyukainya sesuai dengan keinginan Anda, tetapi itu (setahu saya) alat yang paling komprehensif saat ini untuk pekerjaan itu, jadi sangat berharga untuk mengingatnya. Akhirnya, dipromosikan oleh Gradle sendiri, ini secara harfiah adalah panduan pertama mereka (2/2)
tryman
@Michal Maaf, lupa memberi tag Anda sebelumnya sehingga Anda mungkin belum melihat komentar saya. (Saya juga mengedit posting untuk memasukkan komentar yang saya jawab kepada Anda.)
tryman
2
Saya belum mencobanya - terima kasih telah menjelaskan tentang penerimaan persyaratan. Saya menghapus -1 saya.
Michal
9
Di Android Studio
1) Buka terminal dan pastikan Anda berada di folder root proyek.
2) Jalankan ./gradlew app:dependencies (jika tidak menggunakan pembungkus gradle, coba gradle app:dependencies)
Perhatikan bahwa menjalankan ./gradle dependencieshanya akan memberi Anda pohon dependensi dari folder root proyek, jadi menyebutkan aplikasi dengan cara di atas, yaitu ./gradlew app:dependenciespenting.
bagi saya itu bekerja tanpa "./", seperti itu: aplikasi gradlew: dependensi.
Gilad Levinson
7
Saya juga menemukan manfaat untuk menjalankan ini:
./gradlew dI --dependency <your library>
Ini menunjukkan bagaimana ketergantungan sedang diselesaikan ( dependencyInsight) dan membantu Anda men-debug ke mana Anda perlu memaksa atau mengecualikan perpustakaan di Andabuild.gradle
Perhatikan bahwa Anda mungkin perlu melakukan sesuatu seperti ./gradlew <module_directory>:<module_name>:dependenciesjika modul memiliki direktori tambahan sebelum mencapai build.gradle-nya. Jika ragu, lakukan ./gradlew tasks --alluntuk memeriksa nama.
Ini akan memberi Anda semua dependensi dalam proyek dan sub-proyek Anda bersama dengan semua dependensi pihak ke-3.
Jika Anda ingin menyelesaikan ini dengan cara terprogram, maka Anda akan memerlukan penyaji kustom dari dependensi - Anda dapat mulai dengan memperluas AsciiDependencyReportRendereryang mencetak grafik ascii dari dependensi secara default.
gradle dependencies
harus bekerja. Ini gila bagaimana semua oranggradlew app:dependencies
mungkin karena Android.Jawaban:
Untuk Android, gunakan baris ini
atau jika Anda memiliki pembungkus gradle:
di mana
app
modul proyek Anda.Selain itu, jika Anda ingin memeriksa apakah sesuatu
compile
vstestCompile
vsandroidTestCompile
ketergantungan serta apa yang menariknya:sumber
./gradlew
di tempatgradle
Project 'app' not found in root project
saat menjalankan perintah ini. Namun solusi Benjamins berhasil../gradlew :dependencies
akan berhasil. Ini akan mencantumkan dependensi untuk semua proyek Anda, tetapi mudah untuk menemukan yang tepat.Anda bisa membuat pohon ketergantungan dengan perintah
gradle dependencies
. Untuk informasi lebih lanjut, baca bagian 11.6.4 Mendaftarkan dependensi proyek dalam panduan pengguna online.sumber
build.gradle
file) atau file build Anda tidak menggunakan plugin apa pun../gradlew dependencies
Jika Anda merasa sulit untuk menavigasi keluaran konsol
gradle dependencies
, Anda dapat menambahkan plugin Laporan proyek :Dan hasilkan laporan HTML menggunakan:
Laporan biasanya dapat ditemukan di
build/reports/project/dependencies/index.html
Ini terlihat seperti ini:
sumber
gradle htmlDependencyReport
Di Android Studio (setidaknya sejak v2.3.3) Anda dapat menjalankan perintah langsung dari UI:
Klik pada tab Gradle lalu klik dua kali pada : yourmodule -> Tasks -> android -> androidDependencies
Pohon akan ditampilkan di tab Gradle Console
sumber
Seringkali grafik lengkap
test
,,compile
danandroidTestCompile
dependensi terlalu banyak untuk diperiksa bersama. Jika Anda hanya menginginkancompile
grafik dependensi, Anda dapat menggunakan:Sumber: Dokumen Gradle bagian 4.7.6
Catatan:
compile
telah ditinggalkan dalam versi Gradle yang lebih baru dan di versi yang lebih baru Anda disarankan untuk mengalihkan semuacompile
dependensi Anda keimplementation
. Silakan lihat jawaban ini di sinisumber
Jika Anda ingin memvisualisasikan dependensi Anda dalam grafik, Anda dapat menggunakan plugin gradle-dependency-graph-generator .
Secara umum output dari plugin ini dapat ditemukan di direktori build / reports / dependency-graph dan berisi tiga file (.dot | .png | .svg) jika Anda menggunakan versi plugin 0.5.0 .
Contoh grafik ketergantungan dalam aplikasi nyata ( Catur Jam ):
sumber
Untuk Android, ketik terminal ini
Ini akan mencantumkan semua dependensi dan yang dengan versi yang lebih baru untuk Anda tingkatkan seperti
sumber
Banyak hal telah bergerak maju di Gradle jadi saya percaya pertanyaan ini pantas mendapat jawaban lain.
Sejak Gradle 4.3, " build scan " diperkenalkan. Semua info yang relevan tersedia di dokumen Gradle ( 1 , 2 ). Bagi saya, ini sekarang tampaknya menjadi cara termudah untuk memeriksa dependensi Anda (dan umumnya build Anda) dengan cara yang jelas dan terorganisir.
Mereka sangat mudah dibuat, jalankan saja:
(atau
./gradlew build --scan
jika Anda menggunakan pembungkus)Ini menghasilkan tautan yang dibuat secara acak di mana Anda dapat melihat pemindaian Anda. Saat membuka tautan itu, Anda memasukkan email Anda dan mendapatkan kendali penuh atas tautan tersebut: mis. bagikan atau hapus itu. Telah mendapat banyak info tentang bangunan Anda , bukan hanya dependensi. Anda dapat melihat dependensi Anda, hierarki mereka, repositori yang digunakan untuk mendapatkannya tetapi juga banyak hal lain tentang build Anda, yaitu kinerjanya (yang menarik pada build kompleks besar), pengujian Anda, bahkan output konsol Anda dan Anda konfigurasi sistem, yang digunakan JDK dan JVM, ukuran tumpukan maksimum dll.
Ini adalah printscreen dari proyek tiruan:
Namun, perlu diketahui bahwa info untuk proses pembuatan Anda akan dikirim ke server Gradle. Anda memiliki kontrol penuh untuk menghapusnya ketika Anda selesai dengan inspeksi Anda.
Akhirnya, Anda dapat menggunakan build scan dengan versi Gradle lebih awal dari 4.3 juga, Anda hanya perlu menambahkan plugin scan secara manual di buildscript Anda.
Sunting :
Memasukkan beberapa umpan balik dari komentar beberapa catatan tambahan:
1) Sangat sulit untuk melakukan ini secara tidak sengaja atau tanpa memahami bahwa beberapa info untuk bangunan Anda akan online (pribadi untuk Anda, dengan kemampuan untuk menghapusnya, tetapi masih online) ).
Saat menjalankan
gradle build --scan
pesan berikut muncul:Anda harus menulis secara eksplisit
yes
dan kemudian pesan itu berlanjut:2) Di Gradle Enterprise Anda dapat meng-host pemindaian gradle di server Anda sendiri. Namun saya tidak memiliki pengalaman dalam hal ini dan pendekatan yang saya usulkan adalah tentang distribusi Gradle standar, menggunakan server Gradle untuk pemindaian build Anda.
3) Gradle sendiri mempromosikan pemindaian build sebagai cara untuk mengatasi sebagian besar masalah build Anda.
sumber
gradle build --scan
Anda mempublikasikan detail bangunan Anda di suatu tempat di internet - dan untuk menghapusnya Anda harus mengaitkannya dengan alamat email yang berfungsi.gradle build --scan
cmd, Anda diminta:Publishing a build scan to scans.gradle.com requires accepting the Gradle Terms of Service defined at https://gradle.com/terms-of-service. Do you accept these terms? [yes, no]
. Anda harus menulis secara manualyes
. Tepat setelah itu, Anda mendapatkan pesan:Publishing build scan... https://gradle.com/s/a12en0dasdu
(secara acak masukkan tautan dari jenis yang sama). Jadi saya yakin itu memperingatkan Anda dengan tepat sebelumnya. (1/2)Di Android Studio
1) Buka terminal dan pastikan Anda berada di folder root proyek.
2) Jalankan
./gradlew app:dependencies
(jika tidak menggunakan pembungkus gradle, cobagradle app:dependencies
)Perhatikan bahwa menjalankan
./gradle dependencies
hanya akan memberi Anda pohon dependensi dari folder root proyek, jadi menyebutkan aplikasi dengan cara di atas, yaitu./gradlew app:dependencies
penting.sumber
Saya juga menemukan manfaat untuk menjalankan ini:
Ini menunjukkan bagaimana ketergantungan sedang diselesaikan (
dependencyInsight
) dan membantu Anda men-debug ke mana Anda perlu memaksa atau mengecualikan perpustakaan di Andabuild.gradle
Lihat: https://docs.gradle.org/current/userguide/tutorial_gradle_command_line.html
sumber
Perhatikan bahwa Anda mungkin perlu melakukan sesuatu seperti
./gradlew <module_directory>:<module_name>:dependencies
jika modul memiliki direktori tambahan sebelum mencapai build.gradle-nya. Jika ragu, lakukan./gradlew tasks --all
untuk memeriksa nama.sumber
Bagi saya, itu hanya satu perintah
di build.gradle tambahkan
plugin
dan kemudian pergi ke cmd dan jalankan perintah berikut
Ini memberi saya laporan HTML WOW Html report 💕
Itu semua tuanku.
sumber
Untuk versi terbaru Gradle (Saya menguji dengan versi 6.4.1):
atau jika Anda menggunakan Gradle Wrapper:
sumber
Jika Anda ingin semua dependensi dalam satu file di akhir dalam dua langkah. Tambahkan ini ke Anda
build.gradle.kts
di root proyek Anda:Kemudian terapkan:
Ini akan memberi Anda semua dependensi dalam proyek dan sub-proyek Anda bersama dengan semua dependensi pihak ke-3.
Jika Anda ingin menyelesaikan ini dengan cara terprogram, maka Anda akan memerlukan penyaji kustom dari dependensi - Anda dapat mulai dengan memperluas
AsciiDependencyReportRenderer
yang mencetak grafik ascii dari dependensi secara default.sumber