Yerel dosya sisteminde gradle mağazası


236

Gradle indirilen jar dosyalarını yerel dosya sisteminde nasıl depolar? Maven onları aşağıdaki .m2dizinde saklar USER_HOME, ancak Gradle onları nerede saklar? .gradleOradaki klasörü kontrol ettim , ama sadece derlenmiş scriptleri gördüm.

Yanıtlar:


224

Gradle, USER_HOME/.gradleklasördeki eserleri önbelleğe alır . Derlenen komut dosyaları genellikle .gradleproje klasörünüzdeki klasörde bulunur.

Önbelleği bulamıyorsanız, belki de henüz herhangi bir yapay nesneyi önbelleğe almadınız. Gradle'ın yapay nesneleri önbelleğe aldığını her zaman basit bir komut dosyasıyla görebilirsiniz:

apply plugin: 'java'

repositories{
  mavenCentral()
}

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

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

Şimdi çalıştırırsanız gradle showMeCache, önbelleğe deps indirmeli ve tam yolu yazdırmalıdır.


62
Gradle 2.4 için Mac bilgisayarımda (şu anda) var ~/.gradle/caches/modules-2/files-2.1.
Arjan

4
sol vardiya operatörü <<Gradle 3.2'de kullanımdan kaldırılıyor mrhaki.blogspot.com/2016/11/…
rvazquezglez

1
Sol kaydırma operatörü kullanımdan kaldırıldı, ancak yine de çalışıyor (Gradle 4.10 itibariyle). Gradle 5
Sam

272

Mac, Linux ve Windows'ta, yani büyük platformların 3ünde de, Gradle bağımlılıkları şu adreste depolar:

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

52
caches/modules-2/files-2.1Buradaki diğer yanıtların aksine , soruyu gerçekten yanıtladığınız için teşekkür ederiz .
spaaarky21

cd %userprofile%\.gradle\caches\modules-2\files-2.1- Windows'ta bu dizini bulmak için kısa bir komut.
Dmitriy Popov


13

Bağımlılık dosyalarınızın belirli bir klasörde olmasını istiyorsanız, copybunun için bir görev kullanabilirsiniz . Örn.

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

Göreviniz konsolda NO-SOURCE yazdırıyor ve bağımlılıkları kopyalamayın !!
Mojtaba

12

Gradle'ın yerel depo klasörü:

  • $ USER_HOME / .gradle / önbelleğe / modüller-2 / dosyaları-2.1

Tanımlanan bağımlılıklar uzak depolardan sınıfın yerel depo klasörüne yüklenir. Yüklenen her dosya için, gradle orijinal dosyanın md5 değeri (pom, jar, ..) adında yeni bir klasör oluşturur. Bağımlılık dosyasının tam yolu şunlardan oluşur:

  • groupid + yapay nesne + sürüm + FILE_MD5_VALUE + FILE_NAME

Tanımlanmış bağımlılığımız:

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

Sonra kütüphane yüklenecektir:

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

MD5 kullanımdan kaldırıldı, SHA1 değerini kullanıyor
alphaguy

Daha sonra FILE_HASH_VALUE daha genel oldu. Yorumunuz için teşekkürler alphaguy.
nix

7

Ben penceredeyim

İçindeki bağımlılıkları bulabilmelisin

$ USER_HOME.gradle \ cache bellekler \ eserler-24 \ filestore


6
Gradle 2.4 için Mac bilgisayarımda (şu anda) var ~/.gradle/caches/modules-2/files-2.1.
Arjan

Windows 10 kullanıyorum ve C: \ Users [kullanıcı] \.
Gradle

5

Aslında önbellek konumu GRADLE_USER_HOMEortam değişkeni değerine bağlıdır . Varsayılan olarak, $USER_HOME/.gradleUnix-OS tabanlı ve %userprofile%.\gradleWindows'tadır.
Ancak bu değişkeni ayarlarsanız, önbellek dizini bu yoldan bulunur.

Durum ne olursa olsun caches\modules-2\files-2.1, bağımlılıkları bulmak için araştırmalısınız.


3

--project-cache-dir "/Users/whatever/.gradle/"Gradle önbellek dizinini zorlamak için gradle bağımsız değişkenini kullanabilirsiniz .

Bu şekilde hangi dizinin kullanıldığını bildiğinizden emin olabilirsiniz (ayrıca farklı projeler için farklı önbellekler oluşturabilirsiniz)


2

Birçok cevap doğrudur! İndirme konumunuzu kolayca bulabileceğinizi eklemek istiyorum

gradle --info build

https://stackoverflow.com/a/54000767/4471199 adresinde açıklandığı gibi .

İndirilen yeni eserler stdout'ta gösterilecek:

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

Bu durumda docker görüntüsünü kullandım gradle:5.6.2-jdk12. Gördüğünüz gibi, docker konteyneri /tmpindirme konumu olarak kullanıyor .


1

Android gradle projesi olması durumunda - android kütüphanelerini $ ANDROID_HOME / extras / android / m2repository klasörünüzün altında bulabilirsiniz


1

Android stüdyoda gradle indirilen jar dosyasını kontrol etmek için aşağıdaki adımları izleyin.

  1. Proje yapısı görünümünü "Proje" olarak ayarlama
  2. Alttaki Harici kitaplık bölümünü genişletin.
  3. Burada indirilen jar dosyalarını görebilirsiniz. resim açıklamasını buraya girin

1

Tutulma yüklü "Buildship 2.0.2" eklentisi ile Windows makinemde, bağımlılıklar saklanır:

$ USER_HOME.gradle \ önbelleğe \ modülleri-2 \ dosya-2.1


1

Bunu fark etmem biraz zaman aldı, dolayısıyla ek cevap. Umarım millet zamandan tasarruf edebilirsiniz. Çalıştırıyorsanız sudo gradle, bağımlılıklar sudo echo $HOMEdöndürülse bile ana dizininizde olmayabilir /Users/<my-non-root-user>/. Mac bilgisayarımda, Gradle bağımlılıkları önbelleğe alıyordu /private/var/root/.gradle/caches/.


0

Benim durumum için bir Ivy deposu kullanıyordum ve Gradle bağımlılıklarım depolandı ~/.ivy2/.


0

Bu cevabı ararken sadece tökezledim. İntellij kullanıyorsanız, dosya konumuna gidebilir, ancak proje gezgininde harici lib klasörünü açarak, kavanoza sağ tıklayıp Kütüphane Ayarlarını Aç'ı seçebilirsiniz.resim açıklamasını buraya girin

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.