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.

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.


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

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


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'
}

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

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


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.


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)


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.


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


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í

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


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


0

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


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í

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.