Pregunta ¿Cómo puedo obligar a Gradle a volver a descargar las dependencias?


¿Cómo puedo decirle a Gradle que vuelva a descargar las dependencias de los repositorios?


511
2017-11-26 12:42


origen


Respuestas:


En general, puede actualizar dependencias en su caché con la opción de línea de comando --refresh-dependencies. También puede eliminar los archivos almacenados en caché ~/.gradle/caches. Con la próxima compilación, Gradle intentará descargarlos de nuevo.

¿Cuál es su caso de uso específico? ¿Utiliza versiones de dependencia dinámicas o versiones de SNAPSHOT?


En los sistemas Unix, puede eliminar todos los artefactos existentes (artefactos y metadatos) que Gradle ha descargado usando:

rm -rf $HOME/.gradle/caches/

638
2017-11-26 15:21



Si está utilizando una versión reciente de Gradle, puede usar la opción --refresh-dependencies.

./gradlew build --refresh-dependencies

puede consultar el manual de Gradle.

La opción --refresh-dependencies le dice a Gradle que ignore todas las entradas en caché para los módulos y artefactos resueltos. Se realizará una nueva resolución contra todos los repositorios configurados, con las versiones dinámicas recalculadas, los módulos actualizados y los artefactos descargados.

Manual de Gradle


381
2017-08-05 12:48



Puede decirle a Gradle que vuelva a descargar algunas dependencias en el script de compilación marcando la dependencia como 'cambio'. Gradle comprobará si hay actualizaciones cada 24 horas, pero esto se puede configurar utilizando resoluciónStrategy DSL. Me parece útil usar esto para compilaciones SNAPSHOT o NIGHTLY.

configurations.all {
    // Check for updates every build
    resolutionStrategy.cacheChangingModulesFor 0, 'seconds'
}

Expandido:

dependencies {
    compile group: "group", name: "projectA", version: "1.1-SNAPSHOT", changing: true
}

Condensado:

compile('group:projectA:1.1-SNAPSHOT') { changing = true }

Encontré esta solución en este hilo del foro.


249
2018-02-11 01:49



Para Mac 

./gradlew build --refresh-dependencies

Para ventanas 

gradlew build --refresh-dependencies

También puedes probar gradlew assembleDevelopmentDebug --refresh-dependencies


43
2017-10-21 18:15



Para ventanas... para hacer volver a descargar gradle específico dependencias:

  1. elimine las dependencias que desea volver a descargar del directorio a continuación:

    C:\Users\[username]\.gradle\caches\modules-2\files-2.1
    
  2. eliminar todos metadata directorios en la ruta:

    C:\Users\[username]\.gradle\caches\modules-2\metadata-*
    
  3. correr gradle build (o gradlew build si usa gradle wrapper) en el directorio raíz del proyecto.

nota: los números en las rutas de archivos anteriores pueden ser diferentes para usted.


18
2017-07-11 10:03



Uno puede eliminar la carpeta con tarros almacenados en caché.

En mi caso, en Mac la biblioteca estaba en caché en el camino:

/Users/MY_NAME/.gradle/caches/modules-2/files-2.1/cached-library-to-remove

Eliminé la carpeta de la biblioteca en caché ("cached-library-to-remove" en el ejemplo anterior), eliminé la carpeta de compilación de mi proyecto y volví a compilarla. Biblioteca fresca fue descargada entonces.


12
2017-08-18 13:25



En lugar de eliminar toda la memoria caché gradle, como sugieren algunas respuestas aquí, puede eliminar la caché para un grupo específico o identificador de artefactos. Agregué la siguiente función a mi .bash_profile:

deleteGradleCache() {
  local id=$1
  if [ -z "$id" ]; then
    echo "Please provide an group or artifact id to delete"
    return 1
  fi
  find ~/.gradle/caches/ -type d -name "$id" -prune -exec rm -rf "{}" \; -print
}

Uso:

$ deleteGradleCache com.android.support

Luego, en la próxima compilación o si vuelve a sincronizar, gradle volverá a descargar las dependencias.


8
2017-11-22 18:12