web-dev-qa-db-fra.com

m2Eclipse dit "artefact manquant" mais je peux construire à partir de cmdline!

J'essaie d'utiliser ce plug-in Sonatype Eclipse pour la première fois pour gérer un logiciel existant (énorme) que je peux créer avec maven à partir de la ligne de commande.

J'ai configuré le plug-in pour utiliser mon installation maven 2.2.1 au lieu de Maven 3 intégré.

Dans Eclipse, j'ai 25 projets (chargés via la racine pom.xml) et 4 d’entre eux comportent des erreurs de compilation; la console maven contient beaucoup de lignes comme celle-ci:

Artefact manquant commons-logging: commons-logging: jar: 1.0.4: compiler

J'ai tous les fichiers JAR dans mon référentiel et la variable M2_REPO classpath correctement définie. Pourquoi le plugin ne voit pas tous les pots?

Le fichier .classpath de ces projets fait simplement référence à "MAVEN2_CLASSPATH_CONTAINER", il n'y a pas de liste des fichiers jars . Le pom.xml dans Eclipse affiche une erreur sur la première ligne des fichiers jar manquants, mais je peux créer à partir de la commande ligne!

Une idée? J'ai besoin d'aide! Je vais essayer de passer à NetBeans si je ne résous pas ce problème.

Je vous remercie.

23
Pino

J'ai finalement trouvé une solution de contournement. C’est sûrement un bogue dans m2Eclipse, cependant le problème a disparu lorsque j’ai ajouté quartz-1.6.0.pom à côté de quartz-1.6.0.jar dans .m2\repository\opensymphony\quartz\1.6.0\
Le pom n'est pas présent sur http://repo1.maven.org/maven2/opensymphony/quartz/1.6.0/ mais vous pouvez l'extraire du quartz-1.6.0-bundle.jar linket à http: // jira. opensymphony.com/browse/QUARTZ-482
C’est une solution étrange, mais elle a également fonctionné sur les ordinateurs de mes collègues.

0
Pino

Vous devrez peut-être demander à Eclipse de forcer la mise à jour:

Project -> Maven -> Update Maven Project

et assurez-vous d'avoir sélectionné:

Force Updates of Snapshots/Releases

cela se produit lorsque mvn install copie certains fichiers jar dans le référentiel Maven et qu'Eclipse a vérifié ce dépôt AVANT que ce fichier jar y ait été copié.

12
Damian

Si la gestion des dépendances est activée lorsque les problèmes ci-dessus se produisent dans Eclipse, vous pouvez Project > Maven > Disable Dependency Management and then \Project > Maven > Enable Dependency Management. Cela supprime normalement toutes les erreurs de dépendance dans pom.xml.

Faites également comme @Nishant indiqué dans sa réponse ci-dessus après les étapes ci-dessus pour compléter les dépendances des projets.

7
Jurie

right click on your project > Maven > Update Dependencies 

puis 

right click on your project > Maven > Update Project configuration

En supposant que le plug-in M2Eclipse soit installé correctement, cela devrait résoudre le problème. Vérifiez également s’il existe une option right click project > Maven > Enable dependency Management sélectionnez-la.

5
Nishant

En utilisant Eclipse Kepler, la suppression et la ré-addition de la nature maven ont corrigé le même problème que je rencontrais. Ce processus a en réalité modifié le fichier .settings/org.Eclipse.m2e.core.prefs, en modifiant la ligne. 

resolveWorkspaceProjects=false

à 

resolveWorkspaceProjects=true

Donc, vous pourriez probablement faire ce changement manuellement si vous deviez le faire.

2
cyberconte

Ajout de mon 2c pour les futurs Googlers:

Chaque fois que ce problème apparaît, je supprime le dossier correspondant du référentiel m2 (sur un mac, il est sur ~/.m2/repository) et je reconstruis à partir d'Eclipse avec clean install

Fonctionne à chaque fois.

2
Ariel T

Juste pour ajouter une autre résolution possible, si vous avez une construction multi-projets avec des interdépendances, si vous avez un référentiel défini dans un pom de projet enfant pour résoudre une dépendance spécifique dont dépend uniquement ce projet et qui repose sur un projet partent Dans d'autres résolutions, ces dépendances ne sont pas visibles dans le projet enfant (même si cela fonctionne à partir de la ligne de commande).

Déplacez la définition de repo vers le pom parent.

1
codeghost

Fermez Eclipse IDE et ouvrez-le à nouveau, ce problème devrait être résolu.

1
balaji swaroop

Aucune des autres suggestions n'a fonctionné, mais les étapes suivantes ont fonctionné pour moi (SpringSource Tool Suite 2.6.1):

  • Sauvegardez le contenu du référentiel Maven local 
  • Supprimer le référentiel 
  • Projet> Maven> Mettre à jour les dépendances
  • Remplacez tout élément non disponible dans un référentiel public à partir de la sauvegarde
0
lucrussell

Si désactiver et activer la gestion des dépendances de projet ne vous aide pas (normalement, cela aide), vous pouvez modifier le fichier .classpath dans votre projet et ajouter une ligne:

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

Après le redémarrage d'Eclipse, des dépendances doivent être ajoutées.

0
vinga

L'absence de fichiers jar dans le chemin de génération suggère que vous n'avez pas activé les dépendances Maven. Cliquez avec le bouton droit sur le projet, sélectionnez Maven, sélectionnez "Activer la gestion des dépendances Maven". Cela permet à M2Eclipse de référencer votre POM.

0
TrueDub

J'ai eu ce même problème qui m'est arrivé. Sur l’installation propre de la CLI, puis sur Eclipse, supprimez la dépendance, collez-la à nouveau et le tour est joué.

0
Michael Lasso

Supprimez tous les artefacts à l'exception du pot dans le référentiel local maven

0
Harriesh Gomahan