Gradle store pada sistem file lokal


236

Bagaimana Gradle menyimpan file jar yang diunduh di sistem file lokal? Maven menyimpannya di .m2direktori di bawah USER_HOME, tetapi di mana Gradle menyimpannya? Saya memeriksa .gradlefolder di sana, tetapi hanya melihat skrip yang dikompilasi.

Jawaban:


224

Gradle menyimpan artefak dalam USER_HOME/.gradlefolder. Skrip yang dikompilasi biasanya di .gradlefolder di folder proyek Anda.

Jika Anda tidak dapat menemukan cache, mungkin itu karena Anda belum menembolok artefak apa pun. Anda selalu dapat melihat di mana Gradle telah membuat cache artefak dengan skrip sederhana:

apply plugin: 'java'

repositories{
  mavenCentral()
}

dependencies{
  compile 'com.google.guava:guava:12.0'
}

task showMeCache << {
  configurations.compile.each { println it }
}

Sekarang jika Anda menjalankannya gradle showMeCache, unduh deps ke cache dan cetak path lengkap.


62
Di Mac saya untuk Gradle 2.4, itu (saat ini) dalam ~/.gradle/caches/modules-2/files-2.1.
Arjan

4
operator shift kiri <<sedang tidak digunakan lagi di Gradle 3.2 mrhaki.blogspot.com/2016/11/…
rvazquezglez

1
Operator shift kiri sudah usang tetapi masih berfungsi (pada Gradle 4.10). Ini akan terus bekerja sampai Gradle 5
Sam

272

Pada Mac, Linux, dan Windows yaitu pada ketiga platform utama, Gradle menyimpan dependensi di:

~/.gradle/caches/modules-2/files-2.1

52
Terima kasih telah benar-benar menjawab pertanyaan caches/modules-2/files-2.1, tidak seperti setiap jawaban lainnya di sini.
spaaarky21

cd %userprofile%\.gradle\caches\modules-2\files-2.1- perintah singkat untuk mencari ke direktori ini di Windows.
Dmitriy Popov


13

Jika Anda ingin file dependensi Anda berada di folder tertentu, Anda cukup menggunakan copytugas untuk itu. Untuk eg.

task copyDepJars(type: Copy) {
  from configurations.compile
  into 'C:\\Users\\athakur\\Desktop\\lib'
}

Tugas Anda mencetak NO-SUMBER di konsol, dan jangan menyalin dependensi !!
Mojtaba

12

Folder repositori lokal Gradle adalah:

  • $ USER_HOME / .gradle / cache / modules-2 / files-2.1

Dependensi yang ditentukan akan dimuat dari repositori jarak jauh ke dalam folder repositori lokal gradle. Untuk setiap file yang dimuat, gradle akan membuat folder baru bernama dengan nilai md5 dari file asli (pom, jar, ..). Path lengkap untuk file ketergantungan terdiri dari:

  • groupid + artifactid + versi + FILE_MD5_VALUE + FILE_NAME

Jika ketergantungan kita adalah:

  • kompilasi 'org.springframework: spring-jdbc: 4.3.4.RELEASE'

Kemudian perpustakaan akan dimuat ke:

  • /$USER_HOME/.gradle/caches/modules-2/files-2.1/org.springframework/spring-jdbc/4.3.4.RELEASE/ 42175d194cf6aa7c716c0887f30255e5c0a5262c / spring- jdbc- 4.3jar.RELEASE

MD5 sudah tidak digunakan lagi sekarang menggunakan nilai SHA1
alphaguy

Setelah itu FILE_HASH_VALUE menjadi lebih umum. Terima kasih atas komentar Anda yang tidak jelas.
nix

7

Saya di windows,

Anda harus dapat menemukan dependensi di dalamnya

$ USER_HOME.gradle \ caches \ artifacts-24 \ filestore


6
Di Mac saya untuk Gradle 2.4, itu (saat ini) dalam ~/.gradle/caches/modules-2/files-2.1.
Arjan

Saya menggunakan windows 10 dan disimpan di bawah: C: \ Users [user] \. Gradle \ caches \ modules-2 \ files-2.1
user666

5

Faktanya lokasi cache tergantung pada nilai GRADLE_USER_HOMEvariabel lingkungan. Secara default, ini $USER_HOME/.gradleberbasis Unix-OS dan %userprofile%.\gradleWindows.
Tetapi jika Anda mengatur variabel ini, direktori cache akan ditemukan dari jalur ini.

Dan apa pun masalahnya, Anda harus menggali caches\modules-2\files-2.1untuk menemukan dependensi.


3

Anda bisa menggunakan argumen gradle --project-cache-dir "/Users/whatever/.gradle/"untuk memaksa direktori cache gradle.

Dengan cara ini Anda dapat yakin Anda tahu direktori apa yang sedang digunakan (serta membuat cache berbeda untuk proyek yang berbeda)


2

Banyak jawaban yang benar! Saya ingin menambahkan bahwa Anda dapat dengan mudah menemukan lokasi unduhan

gradle --info build

seperti dijelaskan di https://stackoverflow.com/a/54000767/4471199 .

Artefak baru yang diunduh akan ditampilkan di stdout:

Downloading https://plugins.gradle.org/m2/org/springframework/boot/spring-boot-parent/2.1.7.RELEASE/spring-boot-parent-2.1.7.RELEASE.pom to /tmp/gradle_download551283009937119777bin

Dalam hal ini, saya menggunakan gambar buruh pelabuhan gradle:5.6.2-jdk12. Seperti yang Anda lihat, wadah buruh pelabuhan digunakan /tmpsebagai lokasi pengunduhan.


1

Dalam hal ini adalah proyek gradle Android - Anda dapat menemukan perpustakaan android di bawah $ ANDROID_HOME Anda / ekstra / android / m2 folder penyimpanan


1

Di android studio lakukan langkah-langkah berikut untuk memeriksa file jar unduhan gradle.

  1. Tetapkan tampilan struktur proyek ke "Project"
  2. Di bagian bawah bagian Pustaka eksternal tersedia, perluas.
  3. Di sini Anda dapat melihat file jar yang diunduh. masukkan deskripsi gambar di sini

1

Di mesin windows saya dengan plugin "Buildship 2.0.2" diinstal di eclipse, dependensi disimpan:

$ USER_HOME.gradle \ caches \ modules-2 \ files-2.1


1

Butuh beberapa saat untuk menyadari hal ini, maka jawaban tambahan. Semoga ini bisa menghemat waktu orang. Perhatikan bahwa jika Anda menjalankan sudo gradledependensi mungkin tidak ada di direktori home Anda, bahkan jika sudo echo $HOMEkembali /Users/<my-non-root-user>/. Di Mac saya, Gradle sedang melakukan caching dependensi di /private/var/root/.gradle/caches/.


0

Untuk kasus saya, saya menggunakan repositori Ivy, dan dependensi Gradle saya disimpan di ~/.ivy2/.


0

Saya hanya menemukan ini saat mencari jawaban ini. Jika Anda menggunakan intellij, Anda dapat menavigasi ke lokasi file, tetapi membuka folder lib eksternal di penjelajah proyek, mengklik kanan pada jar, dan pilih Buka Pengaturan Perpustakaan.masukkan deskripsi gambar di sini

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.