web-dev-qa-db-fra.com

m2Eclipse ne trouve pas les dépendances maven, artefacts introuvables

J'utilise m2Eclipse comme plugin maven 2 pour Eclipse. Je suis tout nouveau chez maven, donc mon erreur pourrait être simple, bien que la recherche n'ait pas donné de solutions pour moi. Je peux exécuter maven à partir de la ligne de commande et le construire avec succès. Cependant, si j'importe en tant que projet maven existant, ou que j'utilise mvn Eclipse: eclipse, puis que j'importe, j'obtiens les artefacts introuvables dans mon fichier POM, ce qui signifie qu'aucune dépendance maven n'est chargée.

Ce qui est étrange, c'est que j'ai 2 projets, les deux enfants d'un projet parent pom packagé. Un enfant charge toutes mes dépendances maven tandis que l'autre ne peut pas en trouver et dit que mon fichier pom manque d'artefacts. Encore une fois, je peux tous les installer et les emballer très bien à partir de la ligne de commande.

J'ai même essayé de charger mes projets dans des netbeans qui fonctionnaient parfaitement, mais je suis obligé d'utiliser Eclipse.

Des idées pour résoudre le problème?

Mise à jour

Structure du répertoire, disposition des fichiers pom:

--main
  --pom.xml   (is a pom package that is the parent to two other projects)
  --ProjectA
    --pom.xml
  --ProjectB
    --pom.xml

Principal est le projet parent de ProjectA et ProjectB. ProjectB a ProjectA comme dépendance. Apprently m2Eclipse n'est pas satisfait de cette dépendance. Dès que je supprime la dépendance de ProjectA du fichier pom de ProjectB, toutes les dépendances maven sont trouvées par Eclipse.

- com.company.myproj:app:6.6.0:jar Missing: ---------- 1) com.company.myproj:main:pom:${myproj.version} ---------- 1 required artifact is missing. for artifact: com.company.myproj:main:pom:$
 {myproj.version} from the specified remote repositories: Apache-incubating (http://people.Apache.org/repo/m2-incubating-repository/, releases=true, snapshots=true), central (http://
 repo1.maven.org/maven2, releases=true, snapshots=false)

Cependant, j'ai toujours besoin de ProjectB pour avoir cette dépendance pour ProjectA. Le message d'erreur semble être m2Eclipse à la recherche de ProjectA dans un référentiel distant. Le projet A ne devrait se trouver que dans le répertoire .m2, mais je ne sais pas comment dire à m2Eclipse d'y regarder.

Je pense que cela peut être juste un problème spécifique à m2Eclipse car l'utilisation de mvn à partir de la ligne de commande fonctionne très bien et comme je l'ai dit précédemment, netbeans charge très bien les projets et les dépendances.

32
vagabond

J'ai eu ce problème pour les dépendances créées dans d'autres projets. Les dépendances tierces téléchargées sont apparues correctement dans le chemin de génération, mais pas une bibliothèque que j'avais créée.

SOLUTION: dans le projet qui ne se construit pas correctement, cliquez avec le bouton droit sur le projet et choisissez Propriétés, puis Maven. Décochez la case intitulée "Résoudre les dépendances des projets Workspace", cliquez sur Appliquer, puis sur OK. Cliquez de 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 lors de la reconstruction de votre projet (automatiquement si la construction automatique est activée).

45
IceBox13

Il semble que votre installation m2Eclipse utilise le Maven intégré, qui a son propre référentiel (situé sous la page d'accueil de l'utilisateur) et ses paramètres.

Si vous ouvrez les préférences Maven ( Fenêtre -> Préférences -> Installations Maven -> , vous pouvez ajouter votre installation Maven en sélectionnant Ajoutez ... puis naviguez jusqu'au répertoire M2_HOME.

Preferences screenshot
(source: sonatype.com )

Pour plus de détails, voir le livre m2Eclipse

20
Rich Seller

Pour moi, maven téléchargeait la dépendance mais n'a pas pu l'ajouter au chemin de classe. J'ai vu mon .classpath du projet, il n'avait aucune entrée liée à maven. Quand j'ai ajouté

<classpathentry kind="con" path="org.Eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"/>

le problème a été résolu pour moi.

19
Harshal Waghmare

L'une des raisons pour lesquelles j'ai trouvé était pourquoi il ne trouve pas un pot du référentiel peut être car le fichier .pom pour ce pot particulier peut être manquant ou corromp. Corrigez-le et essayez de charger à partir du référentiel local.

2
HP24

D'accord, j'ai corrigé cette chose. J'ai d'abord dû convertir les projets en projets Maven, puis les supprimer de l'espace de travail Eclipse, puis les réimporter.

1
Steven L

Cela peut être un problème si vous utilisez un "Settings.xml" personnalisé, avec un <localRepository> configuré dedans.

Eclipse utilisera l'installation par défaut de MAVEN, et utilisera l'emplacement par défaut pour que l'utilisateur recherche le référentiel Maven local, qui sur les systèmes Linux serait '/home/${USER}/.m2/'

Eclipse peut être facilement configuré pour utiliser le 'Settings.xml' personnalisé, en procédant comme suit: Aller à -> Fenêtre -> Préférences -> Sélectionner 'Maven' -> Sélectionner 'Paramètres utilisateur'

  1. Sous "Paramètres utilisateur", sélectionnez le fichier "Settings.xml" personnalisé, pour "Paramètres utilisateur" en cliquant sur "Parcourir" et en sélectionnant le "Settings.xml" personnalisé.
  2. Cliquez sur "Mettre à jour les paramètres", si la zone de texte "Référentiel local" n'affiche pas l'emplacement personnalisé du fichier ci-dessus, entrez simplement l'emplacement et cliquez sur "Réindexer".
  3. Cliquez sur OK'

Après cela, vous pouvez procéder à la sélection de votre projet dans l '"Explorateur de projets", cliquer avec le bouton droit, sélectionner "Maven"> "Mettre à jour le projet". Assurez-vous que votre projet est sélectionné (coché) dans la fenêtre et cliquez sur "OK".

Cela devrait aider à résoudre le problème, si vous utilisez "Settings.xml" personnalisé pour Maven.

J'espère que ça aide.

0
Dinesh Kumar

J'ai eu des problèmes avec m2Eclipse (c'est-à-dire qu'il ne semblait pas du tout installé) mais je développe un projet en utilisant IAM - plugin maven pour Eclipse pris en charge par Eclipse Fondation (ou hébergé ou quelque chose comme ça).

J'ai eu parfois des problèmes car parfois une erreur étrange est apparue pour le projet (il ne pouvait pas déplacer quelque chose) mais une commande simple (exécutée depuis Eclipse en tant que tâche ou depuis la console) + rafraîchissement (F5) a résolu tous les problèmes:

mvn clean

Cependant, veuillez noter que j'ai créé un projet dans Eclipse. Cependant, j'ai modifié pom.xml par la main.

0
Maciej Piechotka