Manque de dépendances Maven dans le projet Eclipse

nous avons un projet mis en place avec maven pour résoudre les dépendances. Cela fonctionne généralement bien, mais maintenant j'essaie de compiler et de l'exécuter sur un nouveau PC et j'ai un problème avec les dépendances manquantes dans Eclipse.

ce qui est drôle, c'est que si j'exécute" mvn package " en console ou en eclipse, cela fonctionne très bien et produit même la guerre contenant tous les pots nécessaires. Seulement Eclipse se plaint avec "le projet n'a pas été construit puisque son chemin de construction est incomplet. Impossible de trouver le fichier de classe pour org.slf4j.Logger...". Si je compare le projet avec un autre ordinateur (où le projet fonctionne très bien), je remarque qu'il manque pas mal de bibliothèques sous la rubrique "Maven dependencies" dans Eclipse. Même s'ils sont dans la guerre empaquetée et qu'ils peuvent être trouvés aussi sous le dossier de dépôt.

donc, les jar-s sont là juste Eclipse ne les listera pas tous sous"Maven dependencies". Que puis-je faire?

ordinateur est en cours d'exécution sur Windows 7 avec 64bit java et eclipse.

86
demandé sur Sean Patrick Floyd 2010-11-24 02:40:50

30 réponses

Eh bien, j'ai tout essayé posté ici, malheureusement nothings fonctionne dans mon cas. En essayant différentes combinaisons, j'ai trouvé celle qui a résolu mon problème.

1) Ouvrir le .classpath fichier à la racine de votre projet eclipse.

2) Ajouter la rubrique suivante au dossier:

<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
        <attributes>
            <attribute name="maven.pomderived" value="true"/>
            <attribute name="org.eclipse.jst.component.nondependency" value=""/>
        </attributes>
</classpathentry> 

ensuite, reconstruisez votre projet chez eclipse (Project->Clean-Build). Vous pouvez maintenant vérifier à la Java Build Path of you project sous L'onglet Libraries les dépendances Maven incluses: enter image description here

81
répondu Ualter Jr. 2014-12-06 21:59:29

Problème résolu!

Je ne sais pas ce qui l'a résolu exactement, mais j'ai fait 4 choses dans Eclipse:

  • Window->Preferences: Maven->Installations: paramètres Globaux -> ouvrir le fichier et codé en dur localRepository
  • Projet - > Propre
  • clic droit sur le projet: Maven->mise à jour des dépendances
  • clic droit sur le projet: Maven- > mise à jour de la configuration du projet

je suppose que c'était les dépendances de mise à jour puisque juste après les deux premières il n'y avait pas de changement.

72
répondu hostnik 2010-11-24 09:07:23

Je suis aussi nouveau à Eclipse, et j'ai eu un problème similaire où Eclipse ne reconnaîtra tout simplement pas une déclaration d'importation, même si tous les signes indiquent que la dépendance a été téléchargée avec succès.

vous devez vérifier que votre fichier de dépendances a bien été téléchargé en allant à la ligne de commande et en tapant

mvn dependency:tree

si vous voyez votre paquet là-bas, alors mais Eclipse ne le reconnaît pas, la chose qui fonctionne pour moi (parfois) est d'aller au terminal, cd dans le dossier de projet, et de taper

mvn eclipse:clean puis mvn eclipse:eclipse

enfin rafraîchir le projet dans eclipse

je ne sais pas pourquoi cela fonctionne, parfois cela ne fonctionne pas une fois, puis de le faire à nouveau fonctionner... donc, vaut la peine d'essayer!

27
répondu rogueleaderr 2013-10-02 09:00:42

mon projet était foutu. Voici comment je l'ai fixé pour Eclipse Indigo x64 (J2EE 3.7.3):

  1. supprimé mon fichier POM (sauvegarde bien sûr).
  2. Menu Contextuel Du Projet > Maven > Disable Maven Nature .
  3. Supprimé le projet (mais pas le contenu sur le disque).
  4. réimporté en tant que importation > Général > Projet Existant .
  5. menu contextuel du projet > configurer > convertir au projet Maven... .
  6. Accepte les valeurs par défaut de L'Assistant Maven.
  7. écrasez POM avec votre POM de sauvegarde. (Maintenant vous avez le dossier Maven Dependencies ).
  8. Maven mise à Jour/Nettoyer pour de bon mesure.

Espère que ça aide quelqu'un. :)

26
répondu Joseph Lust 2012-03-18 19:50:49

j'ai eu ce problème pour les dépendances qui ont été créées dans d'autres projets. Les dépendances de tiers téléchargées se sont bien présentées dans le chemin de compilation, mais pas une bibliothèque que j'avais créée.

SOLUTION: dans le projet qui ne construit pas correctement,

  • faites un clic droit sur le projet et choisissez Propriétés, puis Maven.

  • décocher la case " " Résoudre les dépendances à partir de L'espace de travail projets

  • cliquez sur Appliquer, puis sur OK.

  • faites un clic droit sur votre projet et faites un Maven->Update Snapshots (ou mise à jour des dépendances)

et vos erreurs devraient disparaître lors de la reconstruction de votre projet (automatiquement si vous avez auto-build activé).

24
répondu IceBox13 2017-10-20 07:11:06

juste au cas où quelqu'un a essayé toutes les autres options et que vous êtes toujours bloqué, essayez le clic droit sur le dossier du projet, dirigez-vous vers L'option Maven et cliquez sur le bouton" Ajouter une dépendance". Pour une raison quelconque, Eclipse ne met pas à jour les dépendances manuellement à partir du pom.xml au premier essai.

screen shot of menu selection

6
répondu FrankDupree 2016-01-06 18:49:14

donc je suis environ 4 ou 5 ans en retard à cette fête, mais j'ai eu ce problème après avoir tiré de notre repo, et aucune des autres solutions de ce fil travaillé dans mon cas pour se débarrasser de ces avertissements/erreurs.

cela a fonctionné pour moi:

De l'Éclipse aller à la Fenêtre -> Préférences -> Maven (développez) -> les Erreurs/Avertissements. La dernière option lit "exécution du Plugin non couverte par la configuration lifecycle" - utilisez la menu déroulant pour cette option et bascule "ignorer", puis Appliquer, puis OK. (À" nécessite la mise à jour des projets Maven " invite dire OK).

Informations Complémentaires:

il se peut que cela ne" corrige "pas nécessairement la ou les questions sous-jacentes, et que cela ne soit pas considéré comme une" pratique exemplaire " par certains, mais cela devrait supprimer/supprimer ces mises en garde qui apparaissent dans Eclipse et vous permettre d'aller de l'avant au moins. Spécifiquement-je travaillais avec Eclipse Luna Service Release 1 (4.4.1) w/ Printemps tableau de bord & Spring IDE de Base (3.6.3), et m2e (1.5) installés, en cours d'exécution sur Arch Linux et OpenJDK 1.7. J'ai importé mon projet en tant que projet maven existant et j'ai sélectionné OK lorsque j'ai été averti des avertissements/erreurs existants (pour les traiter plus tard).

Suppress/Remove "Plugin Execution not covered..." warnings Eclipse-Maven

(Désolé, Je ne suis pas un designer, mais j'ai ajouté une photo pour plus de clarté.)

4
répondu Brandon K 2015-01-20 20:01:50

pour les étapes suivantes travaillées dans mon cas:

1 sur eclipse, clic droit sur le projet désiré Maven - > Disable Maven Nature

2 cliquez à nouveau sur le bouton droit de la souris puis sur Properties . Supprimez toute preuve de dépendance Maven externe ne laissant que la bibliothèque système JRE.

3 clic droit un plus de temps sur le projet puis passer à configurer - > convertir en projet Maven

4
répondu Rafael Isquierdo 2016-04-08 12:36:31

j'ai eu un problème similaire. Je l'ai résolu en lançant le Maven->update Project Configuration action

3
répondu Darryl Sibeon 2012-10-21 17:13:04

Eh bien, j'ai tout essayé posté ici, malheureusement nothings fonctionne dans mon cas. En essayant différentes combinaisons, j'ai trouvé celle qui a résolu mon problème.

1) Ouvrir le .classpath fichier à la racine de votre projet eclipse.

2) Ajouter la rubrique suivante au dossier:

<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
        <attributes>
            <attribute name="maven.pomderived" value="true"/>
            <attribute name="org.eclipse.jst.component.nondependency" value=""/>
        </attributes>
</classpathentry> 

ensuite, reconstruisez votre projet chez eclipse (Project->Clean-Build).

3
répondu Ualter Jr. 2014-12-06 21:54:32

aucune des solutions ci-dessus n'a fonctionné pour moi, donc cette réponse est pour quelqu'un d'autre dans ma situation. J'ai finalement trouvé le problème moi-même, et une solution différente. POM.le fichier xml contenait une balise dependencyManagement qui enveloppait les dépendances, et M2Eclipse n'ajoutait pas le dossier des dépendances Maven lorsque celui-ci était présent. Donc, j'ai enlevé cette étiquette, puis j'ai réalisé la solution offerte par Ualter Jr., et Eclipse a immédiatement ajouté le dossier manquant!

3
répondu Paul Crease 2015-02-25 10:58:42

pour moi, le problème était que maven ne trouvait pas les paramètres .fichier xml qui se trouve dans mymavenfolder\conf .

ce que j'ai fait pour corriger le problème était de sélectionner le bon emplacement des paramètres.fichier xml à partir d'eclipse.:

Fenêtre -> Préférences -> Maven -> Paramètres de l'Utilisateur

Enfin, cliquez sur Appliquer et mettre à jour votre projet

3
répondu I. YOCK 2015-08-20 07:50:20

Voici les étapes que j'ai suivi.

1. Le projet maven a été supprimé d'eclipse.

2. Supprimé tous les fichiers(.paramètre./classpath / target) autre que src et pom de mon dossier source.

3. importé de nouveau comme un projet maven

4. construire à nouveau, vous devriez être en mesure de voir les dépendances maven.

2
répondu karuna nidhan 2018-08-04 17:50:21

si vous avez des erreurs de" chemins imbriqués "après avoir effectué la Configuration de projet Maven -> Update (ou dans Juno c'est la Configuration de "Update"...") alors votre chemin de compilation est mal configuré.

cliquez-Droit sur le projet -> Build Path -> Configure Build Path

s'Assurer que seuls '/src " et répertoires à ce niveau sont inclus. Si vous avez par exemple '/src' et aussi '/src/main/resources' présents, c'est incorrect. La deuxième ressource ('/src/main/resources") est "imbriqué" sous le premier ('/src') qui provoque votre incapacité à importer des ressources, car il empêche eclipse de voir des dépendances maven.

1
répondu KomodoDave 2012-08-09 12:16:24

Mon problème semble similaire donc je vais ajouter à la discussion. J'avais annulé l'importation d'un projet maven existant dans Eclipse qui a eu pour résultat qu'il n'a pas été autorisé à mettre à jour et ne serait pas correctement terminé le bâtiment de L'espace de travail.

ce que j'ai dû faire pour résoudre le problème, c'est Sélectionner Run As... -> Maven build... et sous les objectifs, j'ai entré dependency:go-offline et j'ai lancé ça.

puis j'ai tout de suite cliqué sur le projet et sélectionné Maven -> Update Project... et mis à jour ce spécifique projet.

Cela a finalement permis de créer les dossiers source et de terminer l'importation.

1
répondu Welsh 2012-10-18 02:07:52

je pourrais résoudre l'erreur en 1) faire un clic Droit (votre projet maven) -> maven -> maven installer

après une installation réussie

2) clic droit (votre projet maven) -> Maven -> projet de mise à jour. Et toute l'erreur de maven a été résolue!

1
répondu Nandan Bhalwankar 2013-10-20 13:39:45

pour moi il était suffisant ajouter un buildCommand (org.Eclipse.m2e.noyau.maven2Builder) et une nature (org.Eclipse.m2e.noyau.maven2Nature) dans le .dossier de projet, comme ceci:

<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
    <name>iText</name>
    <comment></comment>
    <projects>
    </projects>
    <buildSpec>
        <buildCommand>
            <name>org.eclipse.jdt.core.javabuilder</name>
            <arguments>
            </arguments>
        </buildCommand>
        <buildCommand>
            <name>org.eclipse.m2e.core.maven2Builder</name>
            <arguments>
            </arguments>
        </buildCommand>
    </buildSpec>
    <natures>
        <nature>org.eclipse.jdt.core.javanature</nature>
        <nature>org.eclipse.m2e.core.maven2Nature</nature>
    </natures>
</projectDescription>

et j'ai eu enter image description here

1
répondu Frizz1977 2015-02-03 08:02:07

C'est comme ça que je l'ai résolu

  • fenêtre->Préférences: Maven->paramètres de L'utilisateur (cliquez sur" Ouvrir le fichier " dans la fenêtre résultante, ou modifiez simplement les paramètres.xml avec un éditeur de texte comme le bloc-notes) Assurez-vous que localRepository (qui est affiché dans cette fenêtre) est correct. J'avais une faute de frappe dans mon dossier.
  • une fois que vous avez corrigé les paramètres.xml, cliquez sur Paramètres de mise à jour, qui se trouve sur L'écran Préférences->Maven->paramètres de L'utilisateur.

maintenant reconstruire, et il installera la dernière Jarre dans le bon endroit.

1
répondu guyland123 2015-06-25 23:39:47

j'ai eu un problème similaire et avez essayé toutes les réponses dans ce post. Le plus près que j'avais réussi à résoudre ce problème était en combinant les solutions Joseph Lust et Paul Crease. J'ai ajouté le pom backed up.fichier xml après suppression et réimportation du projet, et rien n'est apparu jusqu'à ce que j'ai supprimé la balise de gestion de dépendances dans le pom.xml et magiquement le dossier des dépendances était là.

cependant, il a rompu les POM enfant puisqu'ils ont besoin de la pom parent.XML gestion des dépendances pour fonctionner, et en conséquence mon MVN ne fonctionnait pas correctement sur le projet soit à partir D'Eclipse ou de la ligne de commande, donnant un pom cassé.erreur xml.

la dernière solution si tout échoue, est d'importer manuellement le .les fichiers jar nécessaires à votre projet. Cliquez avec le bouton droit de la souris sur Propriétés du projet -> Java Build Path -> Libraries and Add external Jar.

si votre MVN fonctionne correctement depuis la ligne de commande et que vous avez réussi construisez sur le projet, vous aurez tous les repos nécessaires dans votre .m2 / dossier de dépôt. Ajoutez tous les pots externes mentionnés dans votre étiquette de dépendances de pom.xml et vous verrez une section de bibliothèque référencée dans votre Eclipse, avec toutes les erreurs rouge embêtant disparu.

ce n'est pas la solution optimale, mais cela vous permettra de travailler dans Eclipse sans aucune erreur de dépendances manquantes, et vous permettra également de construire le projet Maven à partir D'Eclipse et de la ligne de commande.

1
répondu Saad 2016-04-15 04:50:05

ce même problème m'est arrivé, et c'était parce qu'il y avait une erreur dans le téléchargement d'un pot en raison de problèmes de pension, indiquée par un drapeau rouge dans le pom.xml .

j'ai ajouté un autre dépôt de sorte que le drapeau rouge dans le pom.xml a disparu et Eclipse a ensuite chargé le pom à nouveau, a résolu son problème et a énuméré les dépendances maven dans L'Explorateur de projet. il semble simple et évident de résoudre les problèmes visibles, mais depuis Eclipse était très heureux d'exécuter maven, et construire avec succès, il n'était pas évident que le drapeau rouge et la question des pensions étaient à la racine de son refus de parser le pom et la liste des dépendances maven

1
répondu bigbadmouse 2016-10-13 11:01:40
mvn eclipse:clean

puis de eclipse: "Maven Update Project" fait l'affaire!

1
répondu Ebuzer Taha KANAT 2017-02-12 20:33:54

mise à jour de la .classpath pour ci-dessous à chaque fois.

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
    <classpathentry kind="src" output="target/classes" path="src/main/java">
        <attributes>
            <attribute name="optional" value="true"/>
            <attribute name="maven.pomderived" value="true"/>
        </attributes>
    </classpathentry>
    <classpathentry kind="src" output="target/test-classes" path="src/test/java">
        <attributes>
            <attribute name="optional" value="true"/>
            <attribute name="maven.pomderived" value="true"/>
        </attributes>
    </classpathentry>
    <classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources">
        <attributes>
            <attribute name="maven.pomderived" value="true"/>
        </attributes>
    </classpathentry>
    <classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources">
        <attributes>
            <attribute name="maven.pomderived" value="true"/>
        </attributes>
    </classpathentry>
    <classpathentry excluding="WEB-INF/" kind="src" path="src/main/webapp"/>
    <classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
        <attributes>
            <attribute name="maven.pomderived" value="true"/>
            <attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
        </attributes>
    </classpathentry>
    <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
    <classpathentry kind="output" path="target/classes"/>
</classpath>
1
répondu Jeryl Cook 2017-06-12 01:31:23

Ma réponse est similaire à celle de @JerylCook: trouver un autre .classpath fichier dans un projet Maven, modifier vos mauvaises que bonnes. La clé est d'ajouter

<attributes>
    <attribute name="maven.pomderived" value="true"/>
</attributes>

pour chaque <classpathentry> du type con et src . N'oubliez pas de remplacer <classpathentry .... /> par <classpathentry ...>xxx</classpathentry> .

enfin, mettre à jour le projet maven et réinstaller/reconstruire à maven.

1
répondu WesternGun 2017-09-12 14:52:47

Maven Dependencies: Qu'est-ce qui l'a résolu pour moi dans Eclipse? J'ai ajouté la dépendance dans le "pom" fichier. J'ai fait une construction, mais je ne pouvais pas voir la dépendance Maven dans L'éclipse. Prochaine Étape: Fermé le projet. Puis a rouvert le projet. Je pouvais voir les dépendances Maven.

1
répondu Krishna Rajagopalan 2018-05-23 10:07:52

c'est tellement étonnant que ce problème ait tant de causes différentes et de solutions possibles. J'ai trouvé une solution différente qui a fonctionné pour moi.

Eh bien, ce n'est pas tellement une solution mais une découverte: je peux voir le noeud de dépendances Maven dans L'Explorateur de paquets, qui est la valeur par défaut pour la perspective Java, mais je peux pas le voir dans la perspective Java EE, qui utilise L'Explorateur de projets par défaut. Ces deux explorateurs cherchent très similaire au coup d'oeil rapide, de sorte que vous pouvez vous attendre à voir les dépendances Maven dans les deux.

comme j'essayais de comprendre cela, je n'avais pas réalisé cette différence, donc ce n'était pas vraiment un problème pour moi à la fin après tout.

0
répondu Danger 2012-10-23 19:59:23

l'ensemble du projet avait l'air bizarre dans eclipse, le dossier des dépendances maven manquait, il montrait certains types comme inconnus, mais j'ai pu le construire avec succès dans maven. Ce qui a corrigé mon problème était d'ajouter le dossier gen au chemin source sur le chemin de construction de projet.

probablement c'est similaire à ce Android /FBReaderJ/gen existe déjà mais n'est pas un dossier source. Convertir en un dossier source ou le renommer

0
répondu mik80 2017-05-23 12:34:43

dans Eclipse STS si" Maven Dependencies "disparaît, vous devez vérifier et corriger votre pom.xml . J'ai fait ceci (deux fois) et je l'ai résolu. Ce n'était pas un problème de dépendances mais une chaîne générée et déplacée dans une position aléatoire dans mon pom.xml .

0
répondu LucianoDemuru 2017-02-03 03:12:05

pour les étapes suivantes travaillées dans mon cas:

1 sur eclipse, clic droit sur le projet désiré Maven - > Disable Maven Nature

2 clic droit de nouveau puis aller aux propriétés. Supprimez toute preuve de dépendance Maven externe ne laissant que la bibliothèque système JRE.

3 clic droit une fois de plus sur le projet puis aller à configurer - > convertir en projet Maven

il a travaillé pour moi aussi

0
répondu anurag1007 2017-06-07 13:14:07

Tout ce qui précède n'a pas fonctionné avec moi. Car le correctif était seulement pour supprimer le dossier de dépôt sous .m2 et ensuite faire une mise à jour maven à partir d'eclipse.

0
répondu Khalid Abdlqader 2017-09-20 15:26:15

tant de réponses. Vous voyez, il pourrait y avoir de nombreuses raisons, pourquoi cela ne fonctionne pas, comme prévu. Dans mon cas, je n'ai pas non plus réalisé le - Tag autour de mes dépendances. facepalm

exemple:

...
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>${org.slf4j.version}</version>
        </dependency>
    </dependencies>
</dependencyManagement>

cela ne définit que la dépendance pour ceci et tous les sous-projets avec la version désirée! C'est, ce qu'il devrait par exemple ressembler dans le master-POM. Pour vraiment utiliser la lib dans ce courant projet, vous avez aussi ajouter le depency comme suit:

...
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>${org.slf4j.version}</version>
        </dependency>
    </dependencies>
</dependencyManagement>

<dependencies>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
    </dependency>
</dependencies>

maintenant, il fournira la lib dans ce projet en cours.

0
répondu Robert Fornesdale 2018-02-13 08:21:43