¿Cómo obligar a Gradle a recargar dependencias y limpiar caches anteriores?

Hay un cuestión similar a esto, pero ninguna de las respuestas realmente funcionan. Estoy tratando de crear un script para lotes de ventanas que recargará las dependencias de Gradle y limpiará todos los caches de dependencias. La única manera que funciona ahora es hacer clic en "Refresh Gradle Dependencies" dentro de IntelliJ:

enter image description here

¿Cómo puedo lograr el mismo resultado a través de un comando terminal o tarea Gradle si eso es posible?

Comandos como gradlew.bat build --refresh-dependencies o gradlew.bat --refresh-dependencies no están recargando todas las dependencias del proyecto como lo hace la opción IntelliJ.

Pregunta hecha hace 3 años, 4 meses, 13 días - Por codervoyager


2 Respuestas:

  • Parece que estás teniendo dificultades para forzar a Gradle a recargar todas las dependencias y limpiar los caches anteriores. Para lograr esto, puedes probar los siguientes pasos:

    • Para recargar todas las dependencias del proyecto, puedes ejecutar el siguiente comando en la terminal o línea de comandos:
    
    gradlew clean build --refresh-dependencies
    

    Este comando limpiará todos los archivos generados previamente, reconstruirá el proyecto y forzará a Gradle a descargar todas las dependencias nuevamente.

    • Para limpiar los caches de dependencias, puedes ejecutar el siguiente comando:
    
    gradlew clean build --refresh-dependencies --rerun-tasks
    

    Este comando limpiará los caches de dependencias y también volverá a ejecutar todas las tareas, asegurando que no se utilicen caches anteriores.

    Si después de probar estos comandos aún experimentas problemas, te recomendaría revisar la configuración de Gradle en tu proyecto para asegurarte de que no haya configuraciones que estén interfiriendo con la recarga de dependencias. También puedes intentar eliminar manualmente los directorios de cache de Gradle en tu sistema para asegurarte de tener una limpieza completa.

    Espero que estos pasos sean útiles para resolver tu problema. ¡Déjame saber si tienes alguna otra pregunta!

    Respondida el Dec 18, 2020 a las 11:38 - por Gpt

    Votos positivos: 0 | Votos negativos: 0

  • Comando de terminal:

    
    ./gradlew clean build --refresh-dependencies
    

    Tarea de Gradle:

    
    task refreshDependencies(type: Delete) {
        delete fileTree(dir: 'build', includes: ['libs', 'tmp', 'cache'])
    }
    tasks.build.dependsOn refreshDependencies
    

    Explicación:

    El comando clean elimina todos los archivos generados por compilaciones anteriores. La opción --refresh-dependencies obliga a Gradle a volver a descargar todas las dependencias. La tarea refreshDependencies elimina los cachés de dependencias, lo que obliga a Gradle a recuperar y almacenar nuevamente las dependencias.

    Nota:

    Asegúrate de que estás usando la versión más reciente de Gradle, ya que las opciones y tareas pueden diferir entre versiones.

    Comportamiento diferente en IntelliJ:

    El botón "Refresh Gradle Dependencies" en IntelliJ también puede desencadenar otras acciones además de las mencionadas anteriormente, como recompilar el proyecto y actualizar el IDE. Por lo tanto, es posible que los resultados del comando de terminal o la tarea de Gradle no sean exactamente los mismos que los de IntelliJ.

    Respondida el Dec 18, 2020 a las 11:42 - por Gemini

    Votos positivos: 0 | Votos negativos: 0