Wie speichert Gradle heruntergeladene JAR-Dateien im lokalen Dateisystem? Maven speichert sie im .m2
Verzeichnis unter USER_HOME
, aber wo speichert Gradle sie? Ich habe dort den .gradle
Ordner überprüft , aber nur kompilierte Skripte gesehen.
Wie speichert Gradle heruntergeladene JAR-Dateien im lokalen Dateisystem? Maven speichert sie im .m2
Verzeichnis unter USER_HOME
, aber wo speichert Gradle sie? Ich habe dort den .gradle
Ordner überprüft , aber nur kompilierte Skripte gesehen.
Antworten:
Gradle speichert Artefakte im USER_HOME/.gradle
Ordner zwischen. Die kompilierten Skripte befinden sich normalerweise in dem .gradle
Ordner in Ihrem Projektordner.
Wenn Sie den Cache nicht finden können, liegt dies möglicherweise daran, dass Sie noch keine Artefakte zwischengespeichert haben. Mit einem einfachen Skript können Sie immer sehen, wo Gradle Artefakte zwischengespeichert hat:
apply plugin: 'java'
repositories{
mavenCentral()
}
dependencies{
compile 'com.google.guava:guava:12.0'
}
task showMeCache << {
configurations.compile.each { println it }
}
Wenn Sie gradle showMeCache
es jetzt ausführen , sollten Sie die Deps in den Cache herunterladen und den vollständigen Pfad drucken.
<<
wird auf Gradle 3.2 mrhaki.blogspot.com/2016/11/…
Auf Mac, Linux und Windows, dh auf allen drei Hauptplattformen, speichert Gradle Abhängigkeiten unter:
~/.gradle/caches/modules-2/files-2.1
caches/modules-2/files-2.1
, im Gegensatz zu jeder anderen Antwort hier.
cd %userprofile%\.gradle\caches\modules-2\files-2.1
- Ein kurzer Befehl zum Suchen in diesem Verzeichnis unter Windows.
In Windows 10 PC wird es gespeichert unter:
C:\Users\<user>\.gradle\caches\modules-2\files-2.1\
Wenn Sie möchten, dass sich Ihre Abhängigkeitsdateien in einem bestimmten Ordner befinden, können Sie einfach eine copy
Aufgabe dafür verwenden. Zum Beispiel.
task copyDepJars(type: Copy) {
from configurations.compile
into 'C:\\Users\\athakur\\Desktop\\lib'
}
Der lokale Repository-Ordner von Gradle lautet:
Definierte Abhängigkeiten werden aus Remote-Repositorys in den lokalen Repository-Ordner von gradle geladen. Für jede geladene Datei erstellt gradle einen neuen Ordner mit dem Namen md5 der Originaldatei (pom, jar, ..). Der vollständige Pfad für die Abhängigkeitsdatei besteht aus:
Wenn unsere definierte Abhängigkeit ist:
Dann wird die Bibliothek geladen in:
Ich bin an Fenstern,
Sie sollten in der Lage sein, die Abhängigkeiten darin zu finden
$ USER_HOME.gradle \ caches \ artefakts-24 \ filestore
~/.gradle/caches/modules-2/files-2.1
.
Tatsächlich hängt der Cache-Speicherort vom GRADLE_USER_HOME
Wert der Umgebungsvariablen ab. Standardmäßig ist es $USER_HOME/.gradle
unter Unix-OS und %userprofile%.\gradle
unter Windows.
Wenn Sie diese Variable festlegen, befindet sich das Cache-Verzeichnis über diesen Pfad.
Und in jedem Fall sollten Sie caches\modules-2\files-2.1
sich mit den Abhängigkeiten befassen.
Mit dem Argument gradle können Sie --project-cache-dir "/Users/whatever/.gradle/"
das Gradle-Cache-Verzeichnis erzwingen.
Auf diese Weise können Sie verdammt sicher sein, dass Sie wissen, welches Verzeichnis verwendet wird (und verschiedene Caches für verschiedene Projekte erstellen).
Viele Antworten sind richtig! Ich möchte hinzufügen, dass Sie Ihren Download-Speicherort mit leicht finden können
gradle --info build
wie unter https://stackoverflow.com/a/54000767/4471199 beschrieben .
Neue heruntergeladene Artefakte werden in stdout angezeigt:
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
In diesem Fall habe ich das Docker-Image verwendet gradle:5.6.2-jdk12
. Wie Sie sehen können, wird der Docker-Container /tmp
als Download-Speicherort verwendet.
Führen Sie in Android Studio die folgenden Schritte aus, um die von gradle heruntergeladene JAR-Datei zu überprüfen.
Ich habe eine Weile gebraucht, um dies zu realisieren, daher die zusätzliche Antwort. Hoffentlich kann es den Leuten Zeit sparen. Beachten Sie, dass sich sudo gradle
die Abhängigkeiten beim Ausführen möglicherweise nicht in Ihrem Ausgangsverzeichnis befinden, auch wenn sie sudo echo $HOME
zurückgegeben werden /Users/<my-non-root-user>/
. Auf meinem Mac hat Gradle die Abhängigkeiten zwischengespeichert /private/var/root/.gradle/caches/
.
Ich bin gerade darauf gestoßen, als ich nach dieser Antwort gesucht habe. Wenn Sie Intellij verwenden, können Sie zum Speicherort der Datei navigieren, aber den externen lib-Ordner im Projektexplorer öffnen, mit der rechten Maustaste auf das JAR klicken und Bibliothekseinstellungen öffnen auswählen.
~/.gradle/caches/modules-2/files-2.1
.