¿Cómo puedo decirle a Gradle que vuelva a descargar las dependencias de los repositorios?
742
Generalmente, puede actualizar las dependencias en su caché con la opción de línea de comando --refresh-dependencies . También puede eliminar los archivos en caché en ~/.gradle/caches
. Con la próxima compilación, Gradle intentaría descargarlos nuevamente.
¿Cuál es su caso de uso específico? ¿Utiliza versiones de dependencia dinámica o versiones SNAPSHOT?
En los sistemas Unix, puede eliminar todos los artefactos existentes (artefactos y metadatos) que Gradle ha descargado usando:
rm -rf $HOME/.gradle/caches/
find $HOME/.gradle/caches/ -name "*LIBRARY_NAME*" -exec rm -r {} \;
Si está utilizando una versión reciente de Gradle, puede usar la opción --refresh-dependencies.
puedes consultar el manual de Gradle .
fuente
Puede decirle a Gradle que vuelva a descargar algunas dependencias en el script de compilación marcando la dependencia como 'cambiante'. A continuación, Gradle buscará actualizaciones cada 24 horas, pero esto se puede configurar mediante la resolución DSL de StrategyStrategy. Me resulta útil usar esto para las compilaciones SNAPSHOT o NIGHTLY.
Expandido:
Condensado:
Encontré esta solución en este hilo del foro .
fuente
cacheChangingModulesFor
es la clave,changing: true
es opcional porque está implícito-SNAPSHOT
, es posible usar la abreviatura aquí:compile 'group:projectA:1.1-SNAPSHOT'
debido a la implicación anterior. También se puede restringir el resolutionStrategy a uno config:configurations.compile.resolutionS...
.compile 'com.burrowsapps:ads:1.0:true'
?Para Mac
./gradlew build --refresh-dependencies
Para ventanas
gradlew build --refresh-dependencies
También puede intentar
gradlew assembleDevelopmentDebug --refresh-dependencies
fuente
gradle wrapper
tarea; incluso puede generar una envoltura usando otra envoltura de Gradle:gradlew wrapper
Para Windows ... para hacer que Gradle vuelva a descargar dependencias específicas :
elimine las dependencias que desea volver a descargar del directorio siguiente:
elimine todos los directorios de metadatos en la ruta:
ejecutar
gradle build
(ogradlew build
si está usando gradle wrapper) en el directorio raíz del proyecto.nota: los números en las rutas de archivo anteriores pueden ser diferentes para usted.
fuente
Se puede eliminar la carpeta con tarros en caché.
En mi caso, en Mac, la biblioteca se almacenó en caché en la ruta:
/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 la compilé nuevamente. La biblioteca nueva se descargó entonces.
fuente
En lugar de eliminar todo el caché de gradle, como sugieren algunas respuestas aquí, puede eliminar el caché para un grupo específico o identificación de artefacto. Agregué la siguiente función a mi
.bash_profile
:Uso:
Luego, en la próxima compilación o si vuelve a sincronizar, Gradle volverá a descargar las dependencias.
fuente
Hay 2 formas de hacerlo:
Usando la opción --refresh-dependencies :
Breve explicación : la opción -fresh-dependencies le dice a Gradle que ignore todas las entradas en caché para módulos resueltos y artefactos.
Explicacion larga
Usar eliminar: cuando eliminas cachés
Simplemente limpie todos los frascos almacenados en caché y las sumas sha1 y Gradle se encuentra en una situación en la que no hay artefactos en su máquina y tiene que descargar todo. Sí, funcionará al 100% por primera vez, pero cuando se publique otro SNAPSHOT y sea parte de su árbol de dependencia, se enfrentará nuevamente frente a la opción de actualizar o purgar las cachés.
fuente
Esto funcionó para mí. Asegúrese de que Gradle no esté configurado como fuera de línea desmarcando el botón Archivo> Configuración> Gradle> Trabajo sin conexión.
Agregue esto al nivel superior de su build.gradle, es bueno tener dependencias anteriores
Me aseguré de que mis dependencias se escriban así:
A partir de entonces, abro el panel de Gradle en Android Studio y hago clic en el botón de flechas de círculo azul. Siempre puedo ver mis actualizaciones obteniendo una nueva copia nueva.
fuente
Ninguna de las soluciones anteriores funcionó para mí.
Si usa IntelliJ, lo que lo resolvió para mí fue simplemente actualizar todos los proyectos de Gradle:
fuente
Para aquellos que se preguntan dónde ejecutar los comandos de gradle:
gradlew build --refresh-dependencies
fuente
Para Android Studio 3.4.1
Simplemente abra la pestaña gradle (puede ubicarse a la derecha) y haga clic derecho en el padre en la lista (debería llamarse "Android"), luego seleccione "Actualizar dependencias".
Esto debería resolver su problema.
fuente
Mb Llego demasiado tarde, sin embargo, mi solución es para un único repositorio. Creo que eliminar ~ / .gradle / * es exagerado. El problema con el que me topé fue que estaba eliminando el directorio donde estaban las fuentes y Gradle obtenía otra versión que no era de nexus. Para evitar eso ejecuto el siguiente:
Después de eso, Gradle está arrastrando archivos desde nexus.
fuente
Para actualizar la versión 'lanzamiento' en caché, la única opción es borrar el caché local.
Para actualizar la versión 'instantánea' en caché puede:
fuente
Al eliminar todas las cachés, se vuelven a descargar todas las dependencias. por lo tanto, lleva tanto tiempo y es aburrido esperar nuevamente para volver a descargar todas las dependencias.
¿Cómo podría ser capaz de resolver esto a continuación?
Simplemente elimine los grupos que deben actualizarse.
Ej: si queremos actualizar el grupo com.user.test
luego elimine la dependencia de build.gradle y vuelva a agregarla. entonces refrescará las dependencias de lo que queramos.
fuente
Creo que Gradle 2.14.1 soluciona el problema. La respuesta aceptada es correcta, pero hay un error en gradle con –refresh-dependencies. 2.14.1 corrige eso.
Ver https://discuss.gradle.org/t/refresh-dependencies-should-use-cachechangingmodulesfor-0s/556
fuente
eliminar este directorio:
fuente
Para la mayoría de los casos, simplemente reconstruir el proyecto debería ser suficiente. A veces tiene que ejecutar
./gradlew build --refresh-dependencies
ya que varias respuestas ya han mencionado (lleva mucho tiempo, dependiendo de la cantidad de dependencias que tenga). Sin embargo, a veces ninguno de esos funcionará: la dependencia simplemente no se actualizará. Entonces, puedes hacer esto:NonExistingClass
razón)Esto es ridículo y parece una locura, pero en realidad uso este procedimiento a diario, simplemente porque la dependencia que necesito se puede actualizar docenas de veces y ninguna de las soluciones adecuadas tendría ningún efecto.
fuente
Puedes hacerlo así
Para citar de Desactivar la caché de compilación de Gradle
fuente
Si está utilizando eclipse y desea forzar eclipse para volver a cargar las dependencias, puede probar el siguiente comando
fuente
Solo funciona una eliminación manual de la dependencia específica en la carpeta de caché ... un artefacto creado por un colega en el repositorio empresarial.
fuente
En mi caso, ninguno de los anteriores funcionó, lo que hice fue:
build.gradle
, comentando las dependencias relacionadas con las importaciones no resueltas que tuveEntonces mis importaciones se resolvieron correctamente nuevamente.
fuente
Debe volver a descargarlo, para que pueda descargar y reemplazar manualmente el archivo dañado y volver a sincronizar su proyecto. Vaya a esta ubicación C: \ users [nombre de usuario] .gradle \ wrapper \ dist \ gradle3.3-all \ 55gk2rcmfc6p2dg9u9ohc3hw9 \ gradle-3.3-all.zip Aquí elimine gradle3.3allzip y reemplácelo descargando nuevamente desde este sitio https: / /services.gradle.org/distributions/ Encuentre el mismo archivo y descárguelo y péguelo en esa ubicación. Luego sincronice su proyecto. Espero que funcione para usted también.
fuente