Comment puis-je dire à gradle de télécharger à nouveau les dépendances à partir des référentiels?
742
En règle générale, vous pouvez actualiser les dépendances dans votre cache avec l'option de ligne de commande --refresh-dependencies . Vous pouvez également supprimer les fichiers mis en cache sous ~/.gradle/caches
. Avec la prochaine version, Gradle tenterait de les télécharger à nouveau.
Quel est votre cas d'utilisation spécifique? Utilisez-vous des versions de dépendances dynamiques ou des versions INSTANTANÉES?
Sur les systèmes Unix, vous pouvez supprimer tous les artefacts existants (artefacts et métadonnées) téléchargés par Gradle à l'aide de:
rm -rf $HOME/.gradle/caches/
find $HOME/.gradle/caches/ -name "*LIBRARY_NAME*" -exec rm -r {} \;
Si vous utilisez une version récente de Gradle, vous pouvez utiliser l'option --refresh-dependencies.
vous pouvez vous référer au manuel Gradle .
la source
Vous pouvez dire à Gradle de télécharger à nouveau certaines dépendances dans le script de construction en signalant la dépendance comme «changeante». Gradle vérifiera alors les mises à jour toutes les 24 heures, mais cela peut être configuré en utilisant le DSL resolutionStrategy. Je trouve utile de l'utiliser pour les builds SNAPSHOT ou NIGHTLY.
Étendu:
Condensé:
J'ai trouvé cette solution sur ce fil de discussion .
la source
cacheChangingModulesFor
est la clé,changing: true
est facultative car elle est impliquée par-SNAPSHOT
, il est possible d'utiliser le raccourci ici: àcompile 'group:projectA:1.1-SNAPSHOT'
cause de l'implication ci-dessus. On peut aussi limiter la resolutionStrategy à une config:configurations.compile.resolutionS...
.compile 'com.burrowsapps:ads:1.0:true'
?Pour Mac
./gradlew build --refresh-dependencies
Pour les fenêtres
gradlew build --refresh-dependencies
Peut également essayer
gradlew assembleDevelopmentDebug --refresh-dependencies
la source
gradle wrapper
tâche; vous pouvez même générer un wrapper en utilisant un autre wrapper Gradle:gradlew wrapper
Pour Windows ... afin de rendre le téléchargement de Gradle spécifique dépendances :
supprimez les dépendances que vous souhaitez télécharger à nouveau dans le répertoire ci-dessous:
supprimez tous les répertoires de métadonnées du chemin:
exécuter
gradle build
(ougradlew build
si vous utilisez un wrapper gradle) dans le répertoire racine du projet.remarque: les numéros dans les chemins de fichiers ci-dessus peuvent être différents pour vous.
la source
On peut supprimer un dossier avec des pots mis en cache.
Dans mon cas, sur Mac, la bibliothèque a été mise en cache sur le chemin:
/Users/MY_NAME/.gradle/caches/modules-2/files-2.1/cached-library-to-remove
J'ai supprimé le dossier de bibliothèque mis en cache ("cached-library-to-remove" dans l'exemple ci-dessus), supprimé le dossier de construction de mon projet et compilé à nouveau. Une nouvelle bibliothèque a alors été téléchargée.
la source
Au lieu de supprimer l'intégralité de votre cache Gradle, comme le suggèrent certaines réponses, vous pouvez supprimer le cache d'un groupe spécifique ou d'un identifiant d'artefact. J'ai ajouté la fonction suivante à mon
.bash_profile
:Usage:
Ensuite, lors de la prochaine génération ou si vous resynchronisez, gradle téléchargera à nouveau les dépendances.
la source
Il y a 2 façons de procéder:
Utilisation de l' option --refresh-dependencies :
Brève explication - l'option refresh-dependencies indique à Gradle d'ignorer toutes les entrées mises en cache pour les modules et artefacts résolus.
Explication longue
Utilisation de la suppression: lorsque vous supprimez des caches
Vous venez de nettoyer tous les bocaux mis en cache et les sommes sha1 et Gradle est dans une situation où il n'y a aucun artefact sur votre machine et doit tout télécharger. Oui, cela fonctionnera à 100% pour la première fois, mais lorsqu'un autre INSTANTANÉ est publié et qu'il fait partie de votre arbre de dépendance, vous serez de nouveau confronté devant le choix d'actualiser ou de purger les caches.
la source
Cela a fonctionné pour moi. Assurez-vous que Gradle n'est pas réglé sur hors ligne en décochant le bouton dans Fichier> Paramètres> Gradle> Travail hors ligne.
Ajoutez cela au niveau supérieur de votre build.gradle, agréable d'avoir des dépendances ci-dessus
Je me suis assuré que mes dépendances sont écrites comme ceci:
Par la suite, j'ouvre le panneau Gradle dans Android Studio et clique sur le bouton fléché du cercle bleu. Je peux toujours voir mes mises à jour obtenir une nouvelle copie fraîche.
la source
Aucune des solutions ci-dessus n'a fonctionné pour moi.
Si vous utilisez IntelliJ, ce qui m'a résolu était simplement de rafraîchir tous les projets Gradle:
la source
Pour ceux qui se demandent où exécuter les commandes gradle:
gradlew build --refresh-dependencies
la source
Pour Android Studio 3.4.1
Ouvrez simplement l'onglet Gradle (peut être situé à droite) et faites un clic droit sur le parent dans la liste (devrait être appelé "Android"), puis sélectionnez "Actualiser les dépendances".
Cela devrait résoudre votre problème.
la source
Mb Je suis trop tard mais ma solution est pour un référentiel unique. Je pense que supprimer ~ / .gradle / * est exagéré. Le problème que j'ai rencontré est que je supprimais le répertoire où se trouvaient les sources et gradle obtenait une autre version qui ne provenait pas de Nexus. Pour éviter cela, je lance le suivant:
Après que gradle glisse des fichiers de Nexus.
la source
Pour actualiser la version 'release' mise en cache, la seule option est de vider le cache local.
Pour actualiser la version «instantané» mise en cache, vous pouvez:
la source
La suppression de tous les caches permet de télécharger à nouveau toutes les dépendances. donc cela prend tellement de temps et c'est ennuyeux d'attendre encore une fois pour télécharger à nouveau toutes les dépendances.
Comment pourrais-je être en mesure de résoudre ce problème ci-dessous.
Supprimez simplement les groupes qui doivent être actualisés.
Ex: si nous voulons rafraîchir le groupe com.user.test
puis supprimez la dépendance de build.gradle et ajoutez-la à nouveau. alors il rafraîchira les dépendances ce que nous voulons.
la source
Je pense que Gradle 2.14.1 résout le problème. La réponse acceptée est correcte, mais il y a un bogue dans gradle avec –refresh-dependencies. 2.14.1 corrige cela.
Voir https://discuss.gradle.org/t/refresh-dependencies-should-use-cachechangingmodulesfor-0s/556
la source
supprimez ce répertoire:
la source
Pour la majorité des cas, la simple reconstruction du projet devrait suffire. Parfois, vous devez exécuter
./gradlew build --refresh-dependencies
comme plusieurs réponses l'ont déjà mentionné (cela prend beaucoup de temps, selon le nombre de dépendances que vous avez). Cependant, parfois, rien de tout cela ne fonctionnera: la dépendance ne sera tout simplement pas mise à jour. Ensuite, vous pouvez faire ceci:NonExistingClass
raison)C'est ridicule et cela ressemble à de la folie, mais j'utilise cette procédure quotidiennement, simplement parce que la dépendance dont j'ai besoin peut être mise à jour des dizaines de fois et aucune des solutions adéquates n'aurait d'effet.
la source
Vous pouvez le faire comme ça
Pour citer la désactivation du cache de génération Gradle
la source
Si vous utilisez eclipse et si vous voulez forcer eclipse à recharger les dépendances, vous pouvez essayer la commande ci-dessous
la source
Seule une suppression manuelle de la dépendance spécifique dans le dossier cache fonctionne ... un artificiel construit par un collègue du référentiel d'entreprise.
la source
Dans mon cas, rien de ce qui précède n'a fonctionné, ce que j'ai fait était:
build.gradle
, commentant les dépendances liées aux importations non résolues que j'avaisEnsuite, mes importations ont été correctement résolues à nouveau.
la source
Vous devez le télécharger à nouveau, vous pouvez donc télécharger et remplacer manuellement le fichier corrompu et synchroniser à nouveau votre projet. Accédez à cet emplacement C: \ users [nom d'utilisateur] .gradle \ wrapper \ dist \ gradle3.3-all \ 55gk2rcmfc6p2dg9u9ohc3hw9 \ gradle-3.3-all.zip Ici, supprimez gradle3.3allzip et remplacez-le en le téléchargeant à nouveau à partir de ce site https: / /services.gradle.org/distributions/ Recherchez le même fichier, téléchargez-le et collez-le à cet emplacement. Ensuite, synchronisez votre projet. J'espère que ça marchera pour toi aussi.
la source