Przechowuj w lokalnym systemie plików

235

W jaki sposób Gradle przechowuje pobrane pliki jar w lokalnym systemie plików? Maven przechowuje je w .m2katalogu poniżej USER_HOME, ale gdzie je przechowuje Gradle? Sprawdziłem .gradletam folder, ale widziałem tylko skompilowane skrypty.

manojpardeshi111
źródło

Odpowiedzi:

224

Gradle buforuje artefakty w USER_HOME/.gradlefolderze. Skompilowane skrypty są zwykle w .gradlefolderze w folderze projektu.

Jeśli nie możesz znaleźć bufora, być może dlatego, że nie buforowałeś jeszcze żadnych artefaktów. Zawsze możesz zobaczyć, gdzie Gradle buforował artefakty za pomocą prostego skryptu:

apply plugin: 'java'

repositories{
  mavenCentral()
}

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

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

Teraz, jeśli uruchomisz gradle showMeCache, należy pobrać deps do pamięci podręcznej i wydrukować pełną ścieżkę.

rodion
źródło
62
Na moim Macu dla Gradle 2.4 jest (obecnie) w ~/.gradle/caches/modules-2/files-2.1.
Arjan
4
lewy operator zmiany <<jest przestarzały na Gradle 3.2 mrhaki.blogspot.com/2016/11/…
rvazquezglez
1
Lewy operator zmiany jest przestarzały, ale nadal działa (od wersji 4.10). Będzie działać do poziomu 5
Sam
272

W systemach Mac, Linux i Windows, tj. Na wszystkich 3 głównych platformach, Gradle przechowuje zależności w:

~/.gradle/caches/modules-2/files-2.1
Himanshu Khandelwal
źródło
52
Dziękuję za odpowiedź na pytanie caches/modules-2/files-2.1, w przeciwieństwie do wszystkich innych odpowiedzi tutaj.
spaaarky21
cd %userprofile%\.gradle\caches\modules-2\files-2.1- krótkie polecenie zlokalizowania tego katalogu w systemie Windows.
Dmitriy Popov,
19

W komputerze z systemem Windows 10 jest on zapisywany w:

C:\Users\<user>\.gradle\caches\modules-2\files-2.1\
Hasan A Yousef
źródło
Czy mogę wymusić zmianę tej ścieżki do innej lokalizacji?
Mohammad Faisal
tak samo w systemie MacOS
shabunc
@MohammadFaisal tak, patrz stackoverflow.com/a/28927173/192373
Alex Cohn
13

Jeśli chcesz, aby pliki zależności znajdowały się w określonym folderze, możesz po prostu użyć do tego copyzadania. Na przykład

task copyDepJars(type: Copy) {
  from configurations.compile
  into 'C:\\Users\\athakur\\Desktop\\lib'
}
Aniket Thakur
źródło
Twoje zadanie drukuje BRAK ŹRÓDŁA w konsoli i nie kopiuj zależności !!
Mojtaba,
12

Folder lokalnego repozytorium Gradle to:

  • USH_HOME / .gradle / caches / modules-2 / files-2.1

Zdefiniowane zależności zostaną załadowane ze zdalnych repozytoriów do lokalnego folderu repozytorium gradle. Dla każdego załadowanego pliku gradle utworzy nowy folder o nazwie z wartością md5 oryginalnego pliku (pom, jar, ..). Pełna ścieżka do pliku zależności składa się z:

  • groupid + artefaktid + wersja + FILE_MD5_VALUE + FILE_NAME

Jeśli naszą zdefiniowaną zależnością jest:

  • kompiluj „org.springframework: spring-jdbc: 4.3.4.RELEASE”

Następnie biblioteka zostanie załadowana do:

  • /$USER_HOME/.gradle/caches/modules-2/files-2.1/org.springframework/spring-jdbc/4.3.4.RELEASE/ 42175d194cf6aa7c716c0887f30255e5c0a5262c /spring-jdbc-4.3.4ar.
nic
źródło
MD5 jest przestarzałe, teraz używa wartości SHA1
alphaguy
Potem FILE_HASH_VALUE był bardziej ogólny. Dzięki za komentarz alphaguy.
nix
7

Jestem w systemie Windows,

Powinieneś być w stanie znaleźć zależności w środku

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

mekbib.awoke
źródło
6
Na moim Macu dla Gradle 2.4 jest (obecnie) w ~/.gradle/caches/modules-2/files-2.1.
Arjan
Korzystam z systemu Windows 10 i jest on zapisany pod: C: \ Users [użytkownik] \. Gradle \ caches \ moduły-2 \ files-2.1
user666
5

W rzeczywistości lokalizacja pamięci podręcznej zależy od GRADLE_USER_HOMEwartości zmiennej środowiskowej. Domyślnie działa $USER_HOME/.gradlena systemie operacyjnym Unix i %userprofile%.\gradleWindows.
Ale jeśli ustawisz tę zmienną, katalog pamięci podręcznej będzie zlokalizowany z tej ścieżki.

W każdym razie powinieneś zagłębić się caches\modules-2\files-2.1w zależności od zależności.

davidxxx
źródło
3

Za pomocą argumentu gradle --project-cache-dir "/Users/whatever/.gradle/"można wymusić katalog pamięci podręcznej gradle.

W ten sposób możesz być pewien, że wiesz, który katalog jest używany (a także tworzyć różne pamięci podręczne dla różnych projektów)

Graeme
źródło
2

Wiele odpowiedzi jest poprawnych! Chcę dodać, że możesz łatwo znaleźć swoją lokalizację pobierania

gradle --info build

jak opisano w https://stackoverflow.com/a/54000767/4471199 .

Nowe pobrane artefakty zostaną pokazane na standardowym ekranie:

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

W tym przypadku użyłem obrazu dokera gradle:5.6.2-jdk12. Jak widać, kontener dokujący używa /tmpjako lokalizacji pobierania.

RoBeaToZ
źródło
1

Jeśli jest to projekt na Androida - biblioteki Androida można znaleźć pod folderem $ ANDROID_HOME / extras / android / m2repository

joensson
źródło
1

W Android Studio wykonaj następujące czynności, aby sprawdzić pobrany plik jar.

  1. Ustaw widok struktury projektu na „Projekt”
  2. Na dole dostępna sekcja Biblioteka zewnętrzna, rozwiń ją.
  3. Tutaj możesz zobaczyć pobrane pliki jar. wprowadź opis zdjęcia tutaj
Chetan Mekha
źródło
1

Na moim komputerze z zainstalowaną wtyczką „Buildship 2.0.2” w środowisku Eclipse zależności są przechowywane:

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

nanosoft
źródło
1

Zajęło mi to trochę czasu, aby to zrozumieć, stąd dodatkowa odpowiedź. Mam nadzieję, że może to zaoszczędzić ludziom czas. Zauważ, że jeśli działasz, sudo gradlezależności mogą nie znajdować się w twoim katalogu domowym, nawet jeśli sudo echo $HOMEzwraca /Users/<my-non-root-user>/. Na moim komputerze Mac Gradle buforował zależności /private/var/root/.gradle/caches/.

entpnerd
źródło
0

W moim przypadku korzystałem z repozytorium Ivy, a moje zależności Gradle zostały zapisane ~/.ivy2/.

entpnerd
źródło
0

Natknąłem się na to, szukając tej odpowiedzi. Jeśli używasz intellij, możesz przejść do lokalizacji pliku, ale otwierając zewnętrzny folder lib w eksploratorze projektu, klikając prawym przyciskiem myszy słoik i wybierz Otwórz ustawienia biblioteki.wprowadź opis zdjęcia tutaj

Alper Akture
źródło