¿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?
Opción 1: usar --refresh-dependencies
bandera
Generalmente, puede actualizar las dependencias en su caché con la opción de línea de comando --refresh-dependencies .
Tenga en cuenta que --refresh-dependencies no siempre volverá a descargar todos los artefactos; utilizará copias existentes si coinciden con lo que existe en el repositorio. De la Guía del usuario de Gradle, actualizando dependencias :
La opción --refresh-dependencies le dice a Gradle que ignore todas las entradas almacenadas en caché para los módulos y artefactos resueltos. Se realizará una nueva resolución en todos los repositorios configurados, con versiones dinámicas recalculadas, módulos actualizados y artefactos descargados. Sin embargo, cuando sea posible, Gradle comprobará si los artefactos descargados anteriormente son válidos antes de volver a descargarlos. Esto se hace comparando los valores SHA1 publicados en el repositorio con los valores SHA1 de los artefactos descargados existentes.
[...]
Es un error común pensar que el uso de --refresh-dependencies forzará la descarga de dependencias. Este no es el caso: Gradle solo realizará lo estrictamente necesario para actualizar las dependencias dinámicas. Esto puede implicar la descarga de nuevos listados o archivos de metadatos, o incluso artefactos, pero si nada cambió, el impacto es mínimo.
Opción 2: Eliminar~/.gradle/caches
También puede eliminar los archivos almacenados en caché (artefactos y metadatos) en ~/.gradle/caches
. Con la próxima compilación, Gradle intentará descargarlos nuevamente.
En sistemas *nix (Linux, macOS, ...), puede ejecutar este comando:
rm -rf $HOME/.gradle/caches/
Después de hacer esto, es posible que también necesites eliminar el Gradle Daemon en ejecución:
./gradlew --stop
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 almacenadas en caché para los módulos y artefactos resueltos. Se realizará una nueva resolución en todos los repositorios configurados, con versiones dinámicas recalculadas, módulos actualizados y artefactos descargados.
Puedes indicarle a Gradle que vuelva a descargar algunas dependencias en el script de compilación marcando la dependencia como "cambiando". Gradle luego buscará actualizaciones cada 24 horas, pero esto se puede configurar usando la resoluciónStrategy DSL. Me resulta útil usar esto para compilaciones INSTANTÁNEAS o NOCTURNAS.
configurations.all {
// Check for updates every build
resolutionStrategy.cacheChangingModulesFor 0, 'seconds'
}
Expandido:
dependencies {
implementation group: "group", name: "projectA", version: "1.1-SNAPSHOT", changing: true
}
Condensado:
implementation('group:projectA:1.1-SNAPSHOT') { changing = true }
Encontré esta solución en este hilo del foro .