Gradle-Speicher im lokalen Dateisystem

235

Wie speichert Gradle heruntergeladene JAR-Dateien im lokalen Dateisystem? Maven speichert sie im .m2Verzeichnis unter USER_HOME, aber wo speichert Gradle sie? Ich habe dort den .gradleOrdner überprüft , aber nur kompilierte Skripte gesehen.

manojpardeshi111
quelle

Antworten:

224

Gradle speichert Artefakte im USER_HOME/.gradleOrdner zwischen. Die kompilierten Skripte befinden sich normalerweise in dem .gradleOrdner 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 showMeCachees jetzt ausführen , sollten Sie die Deps in den Cache herunterladen und den vollständigen Pfad drucken.

rodion
quelle
62
Auf meinem Mac für Gradle 2.4 ist es (derzeit) in ~/.gradle/caches/modules-2/files-2.1.
Arjan
4
Der Linksschichtbetreiber <<wird auf Gradle 3.2 mrhaki.blogspot.com/2016/11/…
rvazquezglez
1
Der Linksschichtoperator ist veraltet, funktioniert aber weiterhin (ab Gradle 4.10). Es wird bis Gradle 5
Sam
272

Auf Mac, Linux und Windows, dh auf allen drei Hauptplattformen, speichert Gradle Abhängigkeiten unter:

~/.gradle/caches/modules-2/files-2.1
Himanshu Khandelwal
quelle
52
Vielen Dank, dass Sie die Frage tatsächlich mit beantwortet haben caches/modules-2/files-2.1, im Gegensatz zu jeder anderen Antwort hier.
Spaaarky21
cd %userprofile%\.gradle\caches\modules-2\files-2.1- Ein kurzer Befehl zum Suchen in diesem Verzeichnis unter Windows.
Dmitriy Popov
19

In Windows 10 PC wird es gespeichert unter:

C:\Users\<user>\.gradle\caches\modules-2\files-2.1\
Hasan A Yousef
quelle
Kann ich erzwingen, diesen Pfad an einen anderen Ort zu ändern?
Mohammad Faisal
das gleiche unter MacOS
Shabunc
@MohammadFaisal ja, siehe stackoverflow.com/a/28927173/192373
Alex Cohn
13

Wenn Sie möchten, dass sich Ihre Abhängigkeitsdateien in einem bestimmten Ordner befinden, können Sie einfach eine copyAufgabe dafür verwenden. Zum Beispiel.

task copyDepJars(type: Copy) {
  from configurations.compile
  into 'C:\\Users\\athakur\\Desktop\\lib'
}
Aniket Thakur
quelle
Ihre Aufgabe druckt NO-SOURCE in der Konsole und kopiert keine Abhängigkeiten !!
Mojtaba
12

Der lokale Repository-Ordner von Gradle lautet:

  • $ USER_HOME / .gradle / caches / modules-2 / files-2.1

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:

  • Gruppen-ID + Artefakt-ID + Version + FILE_MD5_VALUE + FILE_NAME

Wenn unsere definierte Abhängigkeit ist:

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

Dann wird die Bibliothek geladen in:

  • /$USER_HOME/.gradle/caches/modules-2/files-2.1/org.springframework/spring-jdbc/4.3.4.RELEASE/ 42175d194cf6aa7c716c0887f30255e5c0a5262c /spring-jdbc-4.3.4.RELEASE
nix
quelle
MD5 ist veraltet, jetzt verwendet es SHA1-Wert
alphaguy
Danach war FILE_HASH_VALUE allgemeiner. Danke für Ihren Kommentar alphaguy.
Nix
7

Ich bin an Fenstern,

Sie sollten in der Lage sein, die Abhängigkeiten darin zu finden

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

mekbib.awoke
quelle
6
Auf meinem Mac für Gradle 2.4 ist es (derzeit) in ~/.gradle/caches/modules-2/files-2.1.
Arjan
Ich benutze Windows 10 und es wird gespeichert unter: C: \ Benutzer [Benutzer] \. Gradle \ Caches \ Module-2 \ Dateien-2.1
Benutzer666
5

Tatsächlich hängt der Cache-Speicherort vom GRADLE_USER_HOMEWert der Umgebungsvariablen ab. Standardmäßig ist es $USER_HOME/.gradleunter Unix-OS und %userprofile%.\gradleunter 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.1sich mit den Abhängigkeiten befassen.

davidxxx
quelle
3

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

Graeme
quelle
2

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 /tmpals Download-Speicherort verwendet.

RoBeaToZ
quelle
1

Falls es sich um ein Android-Gradle-Projekt handelt, finden Sie die Android-Bibliotheken unter Ihrem Ordner $ ANDROID_HOME / extras / android / m2repository

joensson
quelle
1

Führen Sie in Android Studio die folgenden Schritte aus, um die von gradle heruntergeladene JAR-Datei zu überprüfen.

  1. Stellen Sie die Projektstrukturansicht auf "Projekt".
  2. Erweitern Sie den unten verfügbaren Abschnitt Externe Bibliothek.
  3. Hier sehen Sie heruntergeladene JAR-Dateien. Geben Sie hier die Bildbeschreibung ein
Chetan Mekha
quelle
1

Auf meinem Windows-Computer mit dem in Eclipse installierten Plugin "Buildship 2.0.2" werden Abhängigkeiten gespeichert:

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

Nanosoft
quelle
1

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 gradledie Abhängigkeiten beim Ausführen möglicherweise nicht in Ihrem Ausgangsverzeichnis befinden, auch wenn sie sudo echo $HOMEzurückgegeben werden /Users/<my-non-root-user>/. Auf meinem Mac hat Gradle die Abhängigkeiten zwischengespeichert /private/var/root/.gradle/caches/.

entpnerd
quelle
0

In meinem Fall habe ich ein Ivy-Repository verwendet und meine Gradle-Abhängigkeiten wurden in gespeichert ~/.ivy2/.

entpnerd
quelle
0

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.Geben Sie hier die Bildbeschreibung ein

Alper Akture
quelle