Nous avons un projet mis en place avec maven pour résoudre les dépendances. Cela fonctionne généralement bien, mais maintenant je tente de le 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 amusant, c’est que si j’exécute "mvn package" dans la console ou dans Eclipse, cela fonctionne bien et produit même war contenant tous les fichiers jar nécessaires. Seul Eclipse se plaint de "Le projet n'a pas été construit car 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 bien), je remarque qu’il manque de nombreuses bibliothèques sous la liste "Dépendances Maven" dans Eclipse. Même s’ils sont dans la guerre emballée et qu’ils se trouvent également dans le dossier référentiel.
Donc, les jar-s sont là, mais Eclipse ne les listera pas tous sous "Dépendances Maven". Que puis-je faire?
L'ordinateur fonctionne sous Windows 7 avec Java 64 bits et Eclipse.
Problème résolu!
Je ne sais pas ce qui a exactement résolu le problème, mais j'ai fait 4 choses dans Eclipse:
Je suppose que c’étaient les dépendances de la mise à jour puisqu’à la fin des deux premières années, il n’y avait aucun changement.
Eh bien, j'ai tout essayé ici, malheureusement rien ne fonctionne dans mon cas. Donc, en essayant différentes combinaisons, je suis sorti avec celui-ci qui a résolu mon problème.
1) Ouvrez le fichier .classpath situé à la racine du projet Eclipse.
2) Insérer l'entrée suivante dans le fichier:
<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 dans Eclipse (Projet-> Clean-Build) . Vous pouvez maintenant vérifier dans le chemin de construction Java de votre projet dans l'onglet Bibliothèques les dépendances Maven incluses:
Eclipse, qui n’est pas au courant de mes débuts, rencontre un problème similaire dans lequel Eclipse ne reconnaît tout simplement pas une instruction d’importation, même si tous les signes laissent penser que la dépendance a été téléchargée avec succès.
Vous devriez vérifier que votre fichier de dépendance a bien été téléchargé en allant sur la ligne de commande et en tapant
mvn dependency:tree
Si vous voyez votre paquet là-bas, alors qu'Eclipse ne le reconnaît pas, ce qui fonctionne (parfois) pour moi est d'aller au terminal, d'aller dans le dossier du projet et de taper
mvn Eclipse:clean
puis mvn Eclipse:eclipse
Enfin rafraîchir le projet dans Eclipse
Je ne sais pas pourquoi ça marche, et parfois ça ne marche pas une fois, puis ça marche encore ... ça vaut le coup d'essayer!
Mon projet était juste foiré. Voici comment je l'ai corrigé pour Eclipse Indigo x64 (J2EE 3.7.3):
J'espère que ça aide quelqu'un. :)
J'ai eu ce problème pour les dépendances créées dans d'autres projets. Les dépendances de tiers téléchargées se sont bien comportées dans le chemin de génération, mais pas dans la bibliothèque que j'avais créée.
SOLUTION:
Dans le projet qui ne construit pas correctement,
Cliquez avec le bouton droit sur le projet et choisissez Propriétés, puis Maven.
Décochez la case " Résoudre les dépendances dans Workspace Projects "
Appuyez sur Appliquer, puis sur OK.
Cliquez à nouveau avec le bouton droit sur votre projet et effectuez un Maven-> Mettre à jour les instantanés (Ou Mettre à jour les dépendances)
Et vos erreurs devraient disparaître lorsque votre projet sera reconstruit (automatiquement si vous avez activé la génération automatique).
Juste au cas où quelqu'un aurait essayé toutes les autres options et que vous soyez toujours bloqué, essayez de cliquer avec le bouton droit de la souris sur le dossier du projet, de passer à l'option Maven et de cliquer sur le bouton "Ajouter une dépendance". Pour une raison quelconque, Eclipse ne met pas à jour les dépendances manuellement à partir du répertoire pom.xml à la première tentative.
Eh bien, j'ai tout essayé ici, malheureusement rien ne fonctionne dans mon cas. Donc, en essayant différentes combinaisons, je suis sorti avec celui-ci qui a résolu mon problème.
1) Ouvrez le fichier .classpath situé à la racine du projet Eclipse.
2) Insérer l'entrée suivante dans le fichier:
<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 dans Eclipse (Projet-> Clean-Build).
Pour les étapes suivantes ont fonctionné dans mon cas:
1 Sur Eclipse, cliquez avec le bouton droit de la souris sur le projet souhaité Maven -> Désactiver Maven Nature
2 Cliquez à nouveau avec le bouton droit de la souris, puis sélectionnez Propriétés . Supprimez toutes les preuves de dépendance externe Maven en ne laissant que la bibliothèque système JRE.
3 Cliquez à nouveau avec le bouton droit de la souris sur le projet, puis sélectionnez Configurer -> Convertir en projet Maven
J'avais un problème similaire. Je l'ai résolu en exécutant la commande Maven-> Update Project Configuration action
Pour moi, le problème était que maven ne trouvait pas le fichier settings.xml qui se trouve dans myMavenFolder\conf .
Ce que j'ai fait pour résoudre le problème a été de sélectionner le bon emplacement du fichier settings.xml à partir d'Eclipse:
Fenêtre -> Préférences -> Maven -> Paramètres utilisateur
Enfin, cliquez sur Appliquer et mettre à jour votre projet.
J'ai donc environ 4 ou 5 ans de retard par rapport à ce parti, mais j'ai eu ce problème après avoir tiré de notre rapport, et aucune des autres solutions de ce fil n'a fonctionné dans mon cas pour éliminer ces avertissements/erreurs.
Cela a fonctionné pour moi:
Depuis Eclipse, allez dans Fenêtre -> Préférences -> Maven (développez) -> Erreurs/Avertissements. La dernière option indique "Exécution de plug-in non couverte par la configuration du cycle de vie" - utilisez le menu déroulant pour cette option et basculez "Ignorer", puis Appliquer, puis OK. (À l'invite "Nécessite la mise à jour des projets Maven", cliquez sur OK).
Plus d'infos:
Cela peut ne pas nécessairement "résoudre" le (s) problème (s) sous-jacent, et peut ne pas être qualifié de "meilleure pratique" par certains, cependant, il devrait supprimer/supprimer ces avertissements d'apparaître dans Eclipse et vous permettre au moins d'aller de l'avant. Plus précisément, je travaillais avec Eclipse Luna Service Release 1 (4.4.1) avec Spring Dashboard et Spring IDE Core (3.6.3) et m2e (1.5) installés fonctionnant sous Arch Linux et OpenJDK 1.7. J'ai importé mon projet en tant que projet maven existant et sélectionné OK lorsque prévenu des erreurs/avertissements existants (pour y remédier ultérieurement).
(Désolé, je ne suis pas un designer, mais j'ai ajouté une photo pour plus de clarté.)
Voici les étapes que j'ai suivies.
1. Projet maven supprimé d'Eclipse.
2. Supprimez tous les fichiers (.setting/.classpath/target) autres que src et pom de mon dossier source.
3. importé à nouveau en tant que projet maven
4. le reconstruire, vous devriez pouvoir voir les dépendances maven.
Aucune des solutions ci-dessus n'a fonctionné pour moi, alors cette réponse s'adresse à quiconque dans ma situation. J'ai finalement trouvé le problème moi-même et une solution différente. Le fichier pom.xml contenait une balise dependencyManagement qui englobait les dépendances et M2Eclipse n'ajouterait pas le dossier Maven Dependencies lorsqu'il était présent. J'ai donc supprimé cette étiquette, puis exécuté la solution proposée par Ualter Jr. et Eclipse a immédiatement ajouté le dossier manquant!
Ma réponse est similaire à celle de @JerylCook: trouvez un autre fichier .classpath
dans un projet Maven actif, modifiez vos mauvais fichiers comme bons. La clé est d'ajouter
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
dans chaque <classpathentry>
de type con
et src
. N'oubliez pas de changer <classpathentry .... />
en <classpathentry ...>xxx</classpathentry>
.
Enfin, mettez à jour le projet maven et réinstallez/reconstruisez-le dans maven.
Dépendances Maven: Qu'est-ce qui a résolu le problème dans Eclipse? J'ai ajouté la dépendance dans le fichier "pom". J'ai fait une construction, mais je ne pouvais pas voir la dépendance Maven dans Eclipse . Étape suivante: Fermer le projet . Puis rouvrir le projet . Je pouvais voir les dépendances Maven.
mvn Eclipse:clean
puis de Eclipse: "Maven Update Project" fait l'affaire!
Je pourrais résoudre l'erreur par 1) Clic droit (votre projet maven) -> maven -> maven install
Après une installation réussie
2) Faites un clic droit (votre projet maven) -> maven -> mettre à jour le projet. Et toute l'erreur de maven a été résolue!
Ce même problème m’est arrivé, et c’est parce qu’il ya eu une erreur lors du téléchargement d’un fichier jar en raison de problèmes de mise en pension, indiquée par un drapeau rouge dans le pom.xml
.
J'ai ajouté un autre référentiel afin que le drapeau rouge dans le pom.xml
disparaisse et qu'Eclipse charge à nouveau le pom, résout son problème et répertorie les dépendances maven dans l'Explorateur de projets. Cela semble simple et évident de résoudre des problèmes visibles, mais comme Eclipse était assez heureux de lancer Maven et de le construire avec succès, il n’était pas évident que les problèmes de drapeau rouge et de pension étaient à l’origine de sa réticence à analyser le pom et à lister le maven les dépendances
mettre à jour le .classpath ci-dessous fonctionnera à 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>
J'ai eu un problème similaire et j'ai essayé toutes les réponses dans ce post. Pour résoudre ce problème, j’ai été proche de la nécessité de combiner les solutions Joseph Lust et Paul Crease. J'ai ajouté le fichier sauvegardé pom.xml après avoir supprimé et réimporté le projet. Rien ne s'est affiché jusqu'à ce que je supprime la balise de gestion des dépendances dans pom.xml et, comme par hasard, le dossier des dépendances s'y trouvait.
Cependant, il a divisé les POM enfants car ils avaient besoin de la gestion de la dépendance pom.xml parent pour fonctionner. Mon MVN ne fonctionnait donc pas correctement sur le projet, ni depuis Eclipse, ni depuis la ligne de commande, ce qui provoquait une erreur cassée pom.xml.
La dernière solution, si tout échoue, consiste à importer manuellement les fichiers .jar requis par votre projet. Cliquez avec le bouton droit de la souris sur Propriétés du projet -> Chemin de construction Java -> Bibliothèques et ajouter un fichier JAR externe.
Si votre MVN fonctionne correctement à partir de la ligne de commande et que vous avez construit le projet avec succès, vous disposerez de tous les dépôts nécessaires dans votre dossier .m2/repository. Ajoutez tous les fichiers jar externes mentionnés dans votre balise dependencies de pom.xml et vous verrez une section de bibliothèque référencée dans votre Eclipse, avec toutes les erreurs rouges gênantes disparues.
Ce n'est pas la solution optimale, mais cela vous permettra de travailler dans Eclipse sans erreurs de dépendances manquantes et de construire le projet Maven à partir d'Eclipse et de la ligne de commande.
Voici comment je l'ai résolu
Reconstruisez maintenant et les derniers fichiers JAR seront installés à l'emplacement correct.
Pour moi, il suffisait d'ajouter un buildCommand (org.Eclipse.m2e.core.maven2Builder) et une nature (org.Eclipse.m2e.core.maven2Nature) dans le fichier .project, 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'avais
Mon problème semble similaire, alors je vais ajouter à la discussion. J'avais annulé l'importation d'un projet Maven existant dans Eclipse, ce qui l'empêchait de mettre à jour Update et ne finissait pas correctement le bâtiment Work Space.
Ce que je devais faire pour résoudre le problème était de sélectionner Run As... -> Maven build...
et sous Objectifs, je saisis dependency:go-offline
et l’exécutais.
Puis j'ai cliqué avec le bouton droit sur le projet et sélectionné Maven -> Update Project...
et mis à jour ce projet spécifique.
Cela lui a finalement permis de créer les dossiers source et de terminer l'importation.
Si vous rencontrez des erreurs "chemins imbriqués" après l'exécution de Maven -> Mise à jour de la configuration du projet (ou dans Juno, il s'agit de "Mise à jour de la configuration ..."), votre chemin de construction est mal configuré.
Cliquez avec le bouton droit sur le projet -> Chemin de construction -> Configurer le chemin de construction
Assurez-vous que seuls '/ src' et les répertoires de ce niveau sont inclus. Si vous avez par exemple '/ src' et aussi '/ src/main/resources' sont présents, ceci est incorrect. La seconde ressource ('/ src/main/resources') est "imbriquée" dans la première ('/ src'), ce qui vous empêche d'impossifier l'importation de ressources, car elle empêche Eclipse de voir les dépendances maven.
Pour les étapes suivantes ont fonctionné dans mon cas:
1 Sur Eclipse, cliquez avec le bouton droit sur le projet souhaité. Maven -> Désactiver Maven Nature.
2 Cliquez à nouveau avec le bouton droit de la souris, puis sélectionnez Propriétés. Supprimez toutes les preuves de dépendance externe Maven en ne laissant que la bibliothèque système JRE.
3 Cliquez à nouveau avec le bouton droit sur le projet, puis sélectionnez Configuration -> Convertir en projet Maven.
cela a fonctionné pour moi aussi
J'ai aussi rencontré ce problème. Cela m'a dérouté plusieurs heures. J'ai essayé beaucoup de solutions suggérées dans ce sujet. Enfin, j'ai découvert que c'était dû aux filtres Java Element.
Tout ce qui précède n'a pas fonctionné avec moi . Le correctif consistait uniquement à supprimer le dossier du référentiel sous .m2, puis à effectuer une mise à jour maven à partir d'Eclipse.
Dans Eclipse STS, si "Maven Dependencies" disparaît, vous devez vérifier et corriger votre pom.xml
. Je l'ai fait (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
.
fenêtre -> préférences -> Maven -> Instalations -> Paramètres globaux C:\Program Files (x86)\Apache-maven- (version)\conf\settings.xml
dépendance mvn: arbre Dépendance mvn: résoudre
une fois qu'il pointe vers le fichier de paramètres approprié, cliquez avec le bouton droit de la souris sur le projet: dépendances de mise à jour, mettez à jour la configuration du projet, une fois qu'il n'est pas chargé ou le code conserve toujours des erreurs, fermez/ouvrez le projet
le projet entier avait l'air bizarre dans Eclipse, le dossier des dépendances maven était manquant, il montrait que certains types étaient inconnus, mais j'ai pu le construire avec succès dans maven. Ce qui a résolu mon problème, c’était d’ajouter le dossier gen au chemin source sur le chemin de génération du projet.
Cela ressemble probablement à ceci Android/FBReaderJ/gen existe déjà, mais n’est pas un dossier source. Convertir dans un dossier source ou le renommer
La solution ci-dessous a fonctionné pour moi -
1- Aller au répertoire du projet
2- lancez mvn Eclipse: eclipse (Hope mvn est ajouté dans votre chemin)
3- lancer mvn clean install
Actualisez votre projet dans Eclipse et vérifiez.
Tant de réponses. Vous voyez, il pourrait y avoir plusieurs raisons pour lesquelles cela ne fonctionne pas, comme prévu . Dans mon cas, je n'ai pas non plus réalisé la - balise 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 DEFINIT que la dépendance de ce projet et de tous les sous-projets avec la version souhaitée! C'est ce que c'est, par exemple devrait ressembler à dans le maître-POM. Pour utiliser réellement la bibliothèque dans CE projet actuel, vous devez également ajouter la dépendance 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 bibliothèque dans CE projet en cours.
C'est tellement étonnant que ce problème ait tant de causes différentes et de solutions possibles. J'ai trouvé encore une solution différente qui a fonctionné pour moi.
Eh bien, ce n’est pas vraiment une solution, mais une découverte: je peux voir le nœud Maven Dependencies dans l’Explorateur de packages, 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 projet par défaut. Ces deux explorateurs semblent très similaires au premier coup d'œil, vous pouvez donc vous attendre à voir les dépendances Maven dans les deux cas.
Tandis que 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 finalement.