Je commence à configurer mon environnement de développement et j'utilise Spring Tool Suite 2.8.1 avec m2E 1.01.
Autant que je sache, puisqu'il s'agit d'un projet Maven (mon premier), mon POM Maven dicte (avec les smarts m2E) la configuration de construction de mon projet et ses dépendances.
Ce que je voudrais savoir, c’est pourquoi mon IDE affiche les problèmes de construction Java qui se lisent "Archive requise pour bibliothèque library/path/somejar.jar ne peut pas être lu ou n’est pas un fichier Zip valide" lorsque peut voir les bocaux dans mon référentiel .m2?
Toutes les erreurs se rapportaient à commons-logging: 1.1.1, ce que j’excluais dans mon parent-pom. C'était une dépendance transistive via spring-context-support: 3.0.5. J'ai exclu cette bibliothèque de ma construction et maintenant les erreurs se rapportent à la bibliothèque spring-context-support.
J'ai joint une capture d'écran pour illustrer.
En effet, les IDE mettent souvent en cache le référentiel local (Eclipse fait quelque chose de similaire et je dois relancer Eclipse).
Un comportement maven moche que vous pouvez rencontrer est que si vous déclarez une dépendance avant de l’installer, maven créera une version vide de la dépendance manquante (dossier avec des métadonnées mais pas de jar) et vous devrez nettoyer manuellement votre référentiel. .
Troisièmement, une archive installée (jar ...) peut être corrompue. Essayez donc de l'ouvrir avec n'importe quel outil d'archivage (7Zip ...) pour la tester et supprimez le dossier entier si l'archive est corrompue.
Dans mon cas, j'ai dû supprimer manuellement tous les fichiers du dossier .m2\repository
, puis ouvrir la commande Invite et exécuter la commande mvn -install
dans le répertoire de mon projet.
J'utilisais Eclipse comme IDE et j'obtenais la même erreur. Je devais faire Project-> Maven-> Update Project. Cochez toutes les cases ci-dessous sauf "hors ligne" esp. celui "Forcer la mise à jour des instantanés/des versions" et cliquez sur OK. Est-ce que la construction propre pour le projet à nouveau.
Supprimez les fichiers corrompus de votre référentiel .m2 local et Ctrl+F5 (Mise à jour du projet Maven) dans Eclipse/STS. Il va télécharger et installer ces fichiers.
Cela a fonctionné pour moi.
Pour les googleurs:
Dans mon cas, j’avais accidentellement ajouté manuellement une classe Java au chemin de construction en cherchant dans Eclipse. En examinant le chemin de configuration de la configuration ...> Bibliothèques, j'ai supprimé la classe des coupables
et rien ne se plaint.
Dans mon cas, j'ai essayé tous les conseils suggérés, mais l'erreur est restée. J'ai résolu de changer avec une version plus récente et de l'écrire dans le fichier pom.xml. Après cela, tout va bien maintenant.
J'ai supprimé le référentiel Maven local. Puis cliquez avec le bouton droit de la souris sur le projet -> Maven -> Mettre à jour le projet ... Sélectionnez tous les projets concernés et cliquez sur OK.
Supprimer les dépendances maven du chemin de construction
Cela est peut-être dû au fait que vous avez ajouté le fichier spring-licence.txt à vos bibliothèques d'applications Web.
J'ai eu un problème similaire et résolu après la suppression de ce fichier texte. Dans les bibliothèques, seul le fichier jar est attendu.
Alternativement, les commandes ci-dessous ont également fonctionné pour moi:
mvn -s settings.xml Eclipse:clean
mvn -s settings.xml Eclipse:eclipse
Je faisais face au même problème avec mon projet.
Mon projet n'a pas pu trouver cette archive: -
C:\Users\rakeshnarang\.m2\repository\org\hibernate\hibernate-core\5.3.7.Final
Je suis allé dans ce répertoire et j'ai supprimé ce dossier.
Retournez à Eclipse et appuyez sur ALT + F5 pour mettre à jour le projet.
Le fichier jar a été téléchargé à nouveau et le problème a été résolu.
Tu devrais essayer ça.
Je suis confronté au même problème. J'ai supprimé le référentiel local et relancé l'ID. Cela a bien fonctionné.
Ok, j’ai eu le même problème avec STS sur un mac et je l’ai résolu en supprimant tous les fichiers du dossier du référentiel. À partir de STS IDE, cliquez sur le projet puis sur Maven -> Mettre à jour le projet. Donnez-lui quelques minutes pour télécharger toutes les dépendances et le problème sera résolu.
aucune des solutions ci-dessus n'a aidé mon problème. Je l'ai résolu en supprimant tous les fichiers du dossier {projectworkspace} /. Metadata ET du dossier {emplacement} /. M2 et j'ai laissé Eclipse tout télécharger à nouveau. J'espère que cela aide quelqu'un, bravo!
Quand j’ai reçu une erreur disant «l’archive pour la bibliothèque requise n’a pas pu être lue», je l’ai résolue en supprimant les JARS en question du chemin de construction du projet, puis en utilisant «Ajouter des fichiers JAR externes» dans le même dossier qu’ils étaient). L'utilisation du bouton "Ajouter des fichiers JAR" ne fonctionnerait pas et l'erreur serait toujours là. Mais utiliser "Ajouter des bocaux externes" a fonctionné.
Je viens d'avoir ce problème sur Indigo SR2. Il est apparu après que j'ai retiré un fichier jar superflu du classpath (chemin de génération). Redémarrer Eclipse n'a pas aidé. Ajoute le fichier jar au chemin de construction ... l'erreur est partie. Retiré le pot encore une fois, et cette fois j'ai été épargné d'une autre plainte.
J'ai fait face à ce problème. J'avais "L'archive pour la bibliothèque requise spring-boot-devtools ne peut pas être lue ou n'est pas un fichier Zip valide" et la solution était la suivante: - 1- Déterminez les noms de dépendances posant problème (par exemple, c'est le printemps) -boot-devtools) . 2- fermez Eclipse ..__ 3- recherchez dans votre fichier .m2 ces dépendances (par leur nom) . 4- supprimez ces dossiers . 5- rouvrez Eclipse et Laissez Maven reconstruire vos dépendances à nouveau.
Les étapes ci-dessous ont résolu mon problème.
Accédez au dossier ./m2/repository.
Accédez au dossier d'erreur d'archive respectif.
Vérifiez que tout fichier Zip existe.
supprimer le dossier du nom de l'erreur.
Venez maintenant dans le projet Eclipse - Clic droit - Maven -> Mettre à jour le projet.
L'astuce ci-dessus fonctionne pour moi.