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.

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ę.


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

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,


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'
}

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.

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


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.


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)


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.


1

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


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

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


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


0

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


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

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.