Gradle store en el sistema de archivos local

236

¿Cómo almacena Gradle los archivos jar descargados en el sistema de archivos local? Maven los almacena en el .m2directorio debajo USER_HOME, pero ¿dónde los almacena Gradle? Revisé la .gradlecarpeta allí, pero solo vi scripts compilados.

manojpardeshi111
fuente

Respuestas:

224

Gradle almacena en caché los artefactos en la USER_HOME/.gradlecarpeta. Los scripts compilados generalmente están en la .gradlecarpeta en la carpeta de su proyecto.

Si no puede encontrar el caché, tal vez sea porque aún no ha almacenado ningún artefacto. Siempre puede ver dónde Gradle ha almacenado en caché los artefactos con un script simple:

apply plugin: 'java'

repositories{
  mavenCentral()
}

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

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

Ahora, si lo ejecuta gradle showMeCache, debe descargar los deps en la memoria caché e imprimir la ruta completa.

rodion
fuente
62
En mi Mac para Gradle 2.4, (actualmente) está en ~/.gradle/caches/modules-2/files-2.1.
Arjan
44
el operador de desplazamiento a la izquierda <<está en desuso en Gradle 3.2 mrhaki.blogspot.com/2016/11/…
rvazquezglez
1
El operador de desplazamiento a la izquierda está en desuso pero aún funciona (a partir de Gradle 4.10). Continuará funcionando hasta Gradle 5
Sam
272

En Mac, Linux y Windows, es decir, en las 3 plataformas principales, Gradle almacena las dependencias en:

~/.gradle/caches/modules-2/files-2.1
Himanshu Khandelwal
fuente
52
Gracias por responder la pregunta con caches/modules-2/files-2.1, a diferencia de cualquier otra respuesta aquí.
spaaarky21
cd %userprofile%\.gradle\caches\modules-2\files-2.1- un comando breve para ubicar este directorio en Windows.
Dmitriy Popov
19

En PC con Windows 10, se guarda en:

C:\Users\<user>\.gradle\caches\modules-2\files-2.1\
Hasan A Yousef
fuente
¿Puedo forzar el cambio de esa ruta a otra ubicación?
Mohammad Faisal
lo mismo en MacOS en realidad
shabunc
@MohammadFaisal sí, ver stackoverflow.com/a/28927173/192373
Alex Cohn
13

Si desea que sus archivos de dependencia estén en una carpeta específica, simplemente puede usar una copytarea para ello. Por ej.

task copyDepJars(type: Copy) {
  from configurations.compile
  into 'C:\\Users\\athakur\\Desktop\\lib'
}
Aniket Thakur
fuente
¡Su tarea imprime NO-SOURCE en la consola, y no copie dependencias!
Mojtaba
12

La carpeta del repositorio local de Gradle es:

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

Las dependencias definidas se cargarán desde repositorios remotos en la carpeta de repositorios locales de gradle. Para cada archivo cargado, Gradle creará una nueva carpeta con el valor md5 del archivo original (pom, jar, ..). La ruta completa para el archivo de dependencia se compone de:

  • groupid + artifactid + versión + FILE_MD5_VALUE + FILE_NAME

Si nuestra dependencia definida es:

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

Luego la biblioteca se cargará en:

  • /$USER_HOME/.gradle/caches/modules-2/files-2.1/org.springframework/spring-jdbc/4.3.4.RELEASE/ 42175d194cf6aa7c716c0887f30255e5c0a5262c /spring-jdbc-4.3.4.RELEASE.
nada
fuente
MD5 está en desuso ahora usa el valor SHA1
alphaguy
Posteriormente FILE_HASH_VALUE fue más genérico. Gracias por tu comentario alphaguy.
nix
7

Estoy en windows

Deberías poder encontrar las dependencias dentro

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

mekbib.awoke
fuente
66
En mi Mac para Gradle 2.4, (actualmente) está en ~/.gradle/caches/modules-2/files-2.1.
Arjan
Utilizo Windows 10 y se guarda en: C: \ Users [usuario] \. Gradle \ caches \ modules-2 \ files-2.1
user666
5

De hecho, la ubicación de la memoria caché depende del GRADLE_USER_HOMEvalor de la variable de entorno. Por defecto, está $USER_HOME/.gradlebasado en Unix-OS y %userprofile%.\gradleen Windows.
Pero si configura esta variable, el directorio de caché se ubicaría desde esta ruta.

Y sea cual sea el caso, debe investigar caches\modules-2\files-2.1para encontrar las dependencias.

davidxxx
fuente
3

Puede usar el argumento gradle --project-cache-dir "/Users/whatever/.gradle/"para forzar el directorio de caché gradle.

De esta manera, puede estar seguro de saber qué directorio se está utilizando (así como crear diferentes cachés para diferentes proyectos)

Graeme
fuente
2

¡Muchas respuestas son correctas! Quiero agregar que puede encontrar fácilmente su ubicación de descarga con

gradle --info build

como se describe en https://stackoverflow.com/a/54000767/4471199 .

Los nuevos artefactos descargados se mostrarán en 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

En este caso, utilicé la imagen del acoplador gradle:5.6.2-jdk12. Como puede ver, el contenedor acoplable se utiliza /tmpcomo ubicación de descarga.

RoBeaToZ
fuente
1

En caso de que sea un proyecto de Android gradle, puede encontrar las bibliotecas de Android debajo de su carpeta de depósito $ ANDROID_HOME / extras / android / m2

joensson
fuente
1

En Android Studio, realice los siguientes pasos para verificar el archivo jar descargado por Gradle.

  1. Establezca la vista de estructura del proyecto en "Proyecto"
  2. En la parte inferior de la sección Biblioteca externa disponible, amplíela.
  3. Aquí puede ver los archivos jar descargados. ingrese la descripción de la imagen aquí
chetan mekha
fuente
1

En mi máquina Windows con el complemento "Buildship 2.0.2" instalado en eclipse, las dependencias se almacenan:

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

nanosoft
fuente
1

Me tomó un tiempo darme cuenta de esto, de ahí la respuesta adicional. Espero que pueda ahorrarle tiempo a la gente. Tenga en cuenta que si está ejecutando sudo gradlelas dependencias puede no estar en su directorio de inicio, incluso si sudo echo $HOMEregresa /Users/<my-non-root-user>/. En mi Mac, Gradle estaba almacenando en caché las dependencias /private/var/root/.gradle/caches/.

entpnerd
fuente
0

Para mi caso, estaba usando un repositorio Ivy, y mis dependencias de Gradle estaban almacenadas ~/.ivy2/.

entpnerd
fuente
0

Me topé con esto mientras buscaba esta respuesta. Si está utilizando intellij, puede navegar a la ubicación del archivo, pero abriendo la carpeta lib externa en el explorador de proyectos, haciendo clic derecho en el archivo jar y seleccionando Abrir configuración de biblioteca.ingrese la descripción de la imagen aquí

Alper Akture
fuente