Magasin Gradle sur le système de fichiers local

236

Comment Gradle stocke-t-il les fichiers jar téléchargés sur le système de fichiers local? Maven les stocke dans le .m2répertoire sous USER_HOME, mais où Gradle les stocke-t-il? J'ai vérifié le .gradledossier là-bas, mais je n'ai vu que des scripts compilés.

manojpardeshi111
la source

Réponses:

224

Gradle met en cache les artefacts dans le USER_HOME/.gradledossier. Les scripts compilés se trouvent généralement dans le .gradledossier de votre dossier de projet.

Si vous ne trouvez pas le cache, c'est peut-être parce que vous n'avez pas encore mis en cache d'artefacts. Vous pouvez toujours voir où Gradle a mis en cache des artefacts avec un simple script:

apply plugin: 'java'

repositories{
  mavenCentral()
}

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

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

Maintenant, si vous l'exécutez, vous devez gradle showMeCachetélécharger les dépôts dans le cache et imprimer le chemin complet.

rodion
la source
62
Sur mon Mac pour Gradle 2.4, il est (actuellement) disponible ~/.gradle/caches/modules-2/files-2.1.
Arjan
4
l'opérateur de décalage à gauche <<est déconseillé sur Gradle 3.2 mrhaki.blogspot.com/2016/11/…
rvazquezglez
1
L'opérateur de décalage gauche est déconseillé mais fonctionne toujours (à partir de Gradle 4.10). Ça va continuer à fonctionner jusqu'à Gradle 5
Sam
272

Sur Mac, Linux et Windows, c'est-à-dire sur les 3 principales plates-formes, Gradle stocke les dépendances sur:

~/.gradle/caches/modules-2/files-2.1
Himanshu Khandelwal
la source
52
Merci d'avoir répondu à la question avec caches/modules-2/files-2.1, contrairement à toutes les autres réponses ici.
spaaarky21
cd %userprofile%\.gradle\caches\modules-2\files-2.1- une courte commande pour localiser ce répertoire sous Windows.
Dmitriy Popov
19

Dans Windows 10 PC, il est enregistré à:

C:\Users\<user>\.gradle\caches\modules-2\files-2.1\
Hasan A Yousef
la source
Puis-je forcer le changement de chemin vers un autre emplacement?
Mohammad Faisal
la même chose sur MacOS en fait
shabunc
@MohammadFaisal oui, voir stackoverflow.com/a/28927173/192373
Alex Cohn
13

Si vous souhaitez que vos fichiers de dépendance se trouvent dans un dossier spécifique, vous pouvez simplement utiliser une copytâche pour cela. Par exemple.

task copyDepJars(type: Copy) {
  from configurations.compile
  into 'C:\\Users\\athakur\\Desktop\\lib'
}
Aniket Thakur
la source
Votre tâche imprime NO-SOURCE dans la console, et ne copiez pas les dépendances !!
Mojtaba
12

Le dossier du référentiel local de Gradle est:

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

Les dépendances définies seront chargées à partir des référentiels distants dans le dossier du référentiel local de gradle. Pour chaque fichier chargé, gradle créera un nouveau dossier nommé avec la valeur md5 du fichier d'origine (pom, jar, ..). Le chemin complet du fichier de dépendance est composé de:

  • groupid + artifactid + version + FILE_MD5_VALUE + FILE_NAME

Si notre dépendance définie est:

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

Ensuite, la bibliothèque sera chargée dans:

  • /$USER_HOME/.gradle/caches/modules-2/files-2.1/org.springframework/spring-jdbc/4.3.4.RELEASE/ 42175d194cf6aa7c716c0887f30255e5c0a5262c /spring-jdbc-4.3.4.RE.
rien
la source
MD5 est obsolète maintenant il utilise la valeur SHA1
alphaguy
Par la suite, FILE_HASH_VALUE était plus générique. Merci pour votre commentaire alphaguy.
nix
7

Je suis sur windows,

Vous devriez pouvoir trouver les dépendances à l'intérieur

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

mekbib.awoke
la source
6
Sur mon Mac pour Gradle 2.4, il est (actuellement) disponible ~/.gradle/caches/modules-2/files-2.1.
Arjan
J'utilise Windows 10 et il est enregistré sous: C: \ Users [user] \. Gradle \ caches \ modules-2 \ files-2.1
user666
5

En fait, l'emplacement du cache dépend de la GRADLE_USER_HOMEvaleur de la variable d'environnement. Par défaut, il est $USER_HOME/.gradlebasé sur Unix-OS et %userprofile%.\gradlesur Windows.
Mais si vous définissez cette variable, le répertoire de cache serait situé à partir de ce chemin.

Et quel que soit le cas, vous devriez creuser caches\modules-2\files-2.1pour trouver les dépendances.

davidxxx
la source
3

Vous pouvez utiliser l'argument gradle --project-cache-dir "/Users/whatever/.gradle/" pour forcer le répertoire de cache gradle.

De cette façon, vous pouvez être sûr que vous savez quel répertoire est utilisé (ainsi que créer différents caches pour différents projets)

Graeme
la source
2

De nombreuses réponses sont correctes! Je veux ajouter que vous pouvez facilement trouver votre emplacement de téléchargement avec

gradle --info build

comme décrit dans https://stackoverflow.com/a/54000767/4471199 .

Les nouveaux artefacts téléchargés seront affichés dans stdout:

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

Dans ce cas, j'ai utilisé l'image docker gradle:5.6.2-jdk12. Comme vous pouvez le voir, le conteneur Docker utilise /tmpcomme emplacement de téléchargement.

RoBeaToZ
la source
1

Dans le cas où il s'agit d'un projet Android Gradle - vous pouvez trouver les bibliothèques Android sous votre dossier $ ANDROID_HOME / extras / android / m2repository

joensson
la source
1

Dans Android Studio, procédez comme suit pour vérifier le fichier jar gradle téléchargé.

  1. Définissez la vue de la structure du projet sur "Projet"
  2. Au bas de la section Bibliothèque externe disponible, développez-la.
  3. Ici vous pouvez voir les fichiers jar téléchargés. entrez la description de l'image ici
mekha chétan
la source
1

Sur ma machine Windows avec le plugin "Buildship 2.0.2" installé dans eclipse, les dépendances sont stockées:

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

nanosoft
la source
1

Il m'a fallu un certain temps pour réaliser cela, d'où la réponse supplémentaire. Espérons que cela puisse faire gagner du temps aux gens. Notez que si vous exécutez sudo gradleles dépendances peuvent ne pas être dans votre répertoire personnel, même si sudo echo $HOMEretourne /Users/<my-non-root-user>/. Sur mon Mac, Gradle mettait en cache les dépendances dans /private/var/root/.gradle/caches/.

entpnerd
la source
0

Pour mon cas, j'utilisais un référentiel Ivy et mes dépendances Gradle étaient stockées dans ~/.ivy2/.

entpnerd
la source
0

Je suis juste tombé dessus en cherchant cette réponse. Si vous utilisez intellij, vous pouvez accéder à l'emplacement du fichier, mais en ouvrant le dossier lib externe dans l'explorateur de projet, en cliquant avec le bouton droit sur le bocal et en sélectionnant Ouvrir les paramètres de la bibliothèque.entrez la description de l'image ici

Alper Akture
la source