W jaki sposób Gradle przechowuje pobrane pliki jar w lokalnym systemie plików? Maven przechowuje je w .m2
katalogu poniżej USER_HOME
, ale gdzie je przechowuje Gradle? Sprawdziłem .gradle
tam folder, ale widziałem tylko skompilowane skrypty.
W jaki sposób Gradle przechowuje pobrane pliki jar w lokalnym systemie plików? Maven przechowuje je w .m2
katalogu poniżej USER_HOME
, ale gdzie je przechowuje Gradle? Sprawdziłem .gradle
tam folder, ale widziałem tylko skompilowane skrypty.
Odpowiedzi:
Gradle buforuje artefakty w USER_HOME/.gradle
folderze. Skompilowane skrypty są zwykle w .gradle
folderze 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ę.
<<
jest przestarzały na Gradle 3.2 mrhaki.blogspot.com/2016/11/…
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
caches/modules-2/files-2.1
, w przeciwieństwie do wszystkich innych odpowiedzi tutaj.
cd %userprofile%\.gradle\caches\modules-2\files-2.1
- krótkie polecenie zlokalizowania tego katalogu w systemie Windows.
W komputerze z systemem Windows 10 jest on zapisywany w:
C:\Users\<user>\.gradle\caches\modules-2\files-2.1\
Jeśli chcesz, aby pliki zależności znajdowały się w określonym folderze, możesz po prostu użyć do tego copy
zadania. Na przykład
task copyDepJars(type: Copy) {
from configurations.compile
into 'C:\\Users\\athakur\\Desktop\\lib'
}
Folder lokalnego repozytorium Gradle to:
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:
Jeśli naszą zdefiniowaną zależnością jest:
Następnie biblioteka zostanie załadowana do:
Jestem w systemie Windows,
Powinieneś być w stanie znaleźć zależności w środku
$ USER_HOME.gradle \ caches \ artefacts-24 \ filestore
~/.gradle/caches/modules-2/files-2.1
.
W rzeczywistości lokalizacja pamięci podręcznej zależy od GRADLE_USER_HOME
wartości zmiennej środowiskowej. Domyślnie działa $USER_HOME/.gradle
na systemie operacyjnym Unix i %userprofile%.\gradle
Windows.
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.1
w zależności od zależności.
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 /tmp
jako lokalizacji pobierania.
W Android Studio wykonaj następujące czynności, aby sprawdzić pobrany plik jar.
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 gradle
zależności mogą nie znajdować się w twoim katalogu domowym, nawet jeśli sudo echo $HOME
zwraca /Users/<my-non-root-user>/
. Na moim komputerze Mac Gradle buforował zależności /private/var/root/.gradle/caches/
.
~/.gradle/caches/modules-2/files-2.1
.