Indirectement référencé de besoin .les fichiers de classe
Je suis d'erreur ci-dessous en STS:
Le type org.springframework.de base.env.EnvironmentCapable ne peut pas être résolu. Il est indirectement référencé de besoin .les fichiers de classe
OriginalL'auteur Srinivasan | 2013-12-10
Vous devez vous connecter pour publier un commentaire.
Cela ressemble à un problème de dépendance transitive. Ce que cela signifie, c'est que votre code s'appuie sur un bocal ou une bibliothèque pour faire quelque chose, de toute évidence, vous comptez sur le framework Spring code. Eh bien, tout ce qui Ressort de code dépend aussi des bibliothèques et des pots.
Le plus probable, vous devez ajouter le corerctly versionnées
org.springframework.core
jar au classpath de sorte que leEnvironmentCapable
classe peut être trouvé lors de votre IDE tentatives pour construire votre projet.Cela peut aussi être un pot de collision question, même si cela sonne moins probable. Lorsqu'une application expériences pot de collision (aussi connu comme "l'enfer des dll"), le compilateur est de trouver une multitude de pots et des classes avec le même nom pleinement qualifié. Par exemple, disons que vous avez ajouté de Printemps à votre classpath, avec tout le serveur Tomcat de la bibliothèque. Eh bien, ces deux pots peut contenir exactement la même nommé classes, peut-être la même version, peut-être des versions différentes. Mais de toute façon, quand le compilateur recherche pour que
EnvironmentCapable
classe, il trouve deux (dans cet exemple artificiel) - l'un au Printemps jar et un dans le jar Tomcat. Eh bien, il ne sait pas lequel choisir, et donc, il jette unClassDefNotFoundException
, qui serait/pourrait se manifester comme l'erreur que vous avez vécu.OriginalL'auteur liltitus27
J'ai fait face à la même erreur alors que je travaille avec ressort de sécurité sur spring-security-config.j'ai simplement supprimé ce pot en repo maven et a donné maven->mise à jour du Projet dans eclipse.
il est résolu.S'il vous plaît essayer une fois.
OriginalL'auteur Anbu Prakash
En ligne de commande, exécutez "mvn clean install", vous allez voir le projet a échoué et vous verrez des artefacts dans les journaux de causer un tel problème.
Après cela, supprimer les artefacts de .m2/repository, puis maven mise à jour de l'éclipse.
OriginalL'auteur sinanduman
Pour éviter pot de collision, assurez-vous de déclarer votre dépendance versions sous les propriétés de la balise dans l'ensemble pom.xml et utiliser le nom de la propriété comme un espace réservé tout au long du projet. Par exemple 4.2.5.La LIBÉRATION dans le pom parent, puis à l'enfant des modules utiliser ${printemps.version} au lieu de 4.2.5.La LIBÉRATION. De cette façon, vous pouvez éviter d'avoir deux versions différentes de la même bibliothèque, sur le chemin de la classe.
Aussi il est recommandé d'être compatible avec la version de printemps de dépendances. Utiliser la même version pour le printemps-core, printemps-web etc.
Si vous utilisez maven, vous pouvez utiliser le maven enforcer plugin pour assurer la dépendance de la convergence, et d'éviter d'autres problèmes avec dépendances transitives.
OriginalL'auteur Dezso Gabos