Java ClassNotFoundException avec maven dependency
Je suis ClassNotFoundException
et NoClassDefFoundError
exceptions lorsque je tente de lancer mon application à l'aide d'un maven défini dépendance.
J'ai ajouté ma dépendance maven pour le pot en question à mon pom.xml
fichier avec la déclaration suivante:
<dependency>
<groupId>spy</groupId>
<artifactId>spymemcached</artifactId>
<version>2.8.4</version>
<scope>provided</scope>
</dependency>
Cette plus pertinentes fichier JAR pour mon Dépendances Maven dossier dans Eclipse. Je peux accéder aux classes dans le code, mais je reçois les exceptions mentionnées une fois que je lance l'application.
Le pot est référencé dans mon Java build path sous les dépendances Maven:
Mon référentiel maven local est ajouté à mon classpath:
Quand j'essaye d'exécuter l'application, j'obtiens les deux cas suivants:
java.lang.NoClassDefFoundError: Lnet/spy/memcached/MemcachedClient;
java.lang.ClassNotFoundException: net.spy.memcached.MemcachedClient
Quelqu'un peut me pointer dans la bonne direction?
Vous devez vous connecter pour publier un commentaire.
Changement
provided
àcompile
Fourni
"Fourni" champ d'application implique que les dépendances devraient être disponibles uniquement pendant la phase de compilation et ils seront disponibles ailleurs en cours d'exécution de Maven ne devrait pas le package avec le reste des pots et des classes de l'application en cours.
Votre dépendance ne semble pas être de la "condition" de la portée. Supprimer la portée de votre dépendance à la définition et les pots seront présents dans votre emballé jar/war/ear.
J'ai été confrontée au même problème mais je n'ai pas la balise définie sur mon POMPON, il était toujours en train de travailler bien jusqu'à ce que, un jour, tout d'un coup commencé à me donner cette erreur dans ma machine locale pour aucune raison, la dépendance a été correctement mis en place dans le POM et le pot était présent dans le repository maven.
J'ai essayé de nettoyer le projet et la mise à jour de projet maven, mais rien, aucune des autres solutions proposées sur d'autres posts a fonctionné pour moi non plus.
J'ai finalement été en mesure de le résoudre en allant sur l'onglet serveurs -> clic droit sur Tomcat v8.0 -> parcourir du lieu de déploiement
cela devrait vous conduire à un dossier temp comme
.les métadonnées.plugins\org.eclipse.wst.serveur.core\tmp1\wtpwebapps
puis vous accédez à votre dossier de projet -> WEB-INF -> lib> ici j'ai trouvé que le pot de la bibliothèque qui donne l'erreur a disparu, alors j'ai juste copié à partir .m2\repository
Redémarré le serveur, et il a commencé à travailler comme d'habitude.
J'espère que cela aide certains corps face à la même question.
Ajouter en dessous de la Dépendance, Il permettra de résoudre le Problème.
Réponse est en quelque sorte liée à votre problème, mais ne peut toujours aider les autres.
L'ajout de
<scope>compile</scope>
de la dépendance n'était pas suffisant dans mon cas. J'ai également eu à ajouter<packaging>jar</packaging>
à la cible du module pom.