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.

manojpardeshi111
sumber

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.

rodion
sumber
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
Himanshu Khandelwal
sumber
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
19

Pada Windows 10 PC, disimpan di:

C:\Users\<user>\.gradle\caches\modules-2\files-2.1\
Hasan A Yousef
sumber
Bisakah saya memaksa mengubah jalur itu ke lokasi lain?
Mohammad Faisal
hal yang sama pada MacOS sebenarnya
shabunc
@MohammadFaisal ya, lihat stackoverflow.com/a/28927173/192373
Alex Cohn
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'
}
Aniket Thakur
sumber
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
nix
sumber
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

mekbib.awoke
sumber
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.

davidxxx
sumber
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)

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

RoBeaToZ
sumber
1

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

joensson
sumber
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
chetan mekha
sumber
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

nanosoft
sumber
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/.

entpnerd
sumber
0

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

entpnerd
sumber
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

Alper Akture
sumber