Comment configurer le chemin de construction Eclipse pour utiliser les dépendances Maven?


124

Je souhaite profiter des fonctionnalités fournies par Maven pour gérer les dépendances dans un projet. Ma brève compréhension du fonctionnement de Maven est qu'il va acquérir les JAR nécessaires et ensuite construire le projet avec ces bibliothèques.

Actuellement, j'ai un simple fichier POM configuré comme test:

<project xmlns="http://maven.apache.org/POM/4.0.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.jamesgoodwin.test</groupId>
  <artifactId>com.jamesgoodwin.test</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <build>
  </build>
  <dependencies>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>3.0.0.RELEASE</version>
        <type>jar</type>
        <scope>compile</scope>
    </dependency>
  </dependencies>
</project>

Pour gérer les dépendances, j'ajoute généralement le projet ou le JAR au chemin de construction, puis je pourrai créer mon projet.

Mais lors de l'utilisation de M2Eclipse, les dépendances ne sont pas ajoutées automatiquement au chemin de construction. Existe-t-il une configuration permettant à Eclipse de savoir que le Maven gère les dépendances?

Réponses:


116

Si vous faites un clic droit sur votre projet, il devrait y avoir une option sous "maven" pour "activer la gestion des dépendances". C'est tout.


2
m2eclipse ne le fait pas par défaut si vous importez un projet créé avec mvn eclipse: eclipse, donc cela semble toujours faire trébucher les gens.
matt b

28
Il était déjà activé pour mon projet. Peut-être parce que j'ai choisi d'ajouter un fichier POM à un projet existant? Cependant, faire Maven> Mettre à jour la configuration du projet semble l'avoir corrigé pour moi. C'est aussi votre réponse qui m'a finalement conduit à découvrir cette barre d'outils où je pourrais réparer le projet. Merci beaucoup
James Goodwin

12
Et s'il n'y a pas d'option «Maven» dans le menu contextuel, même si je semble avoir installé m2eclipse?
dfrankow

85
Ah, "Configure" => "Convertir en projet Maven" est votre ami!
dfrankow

2
@dfrankow et si l'option "Configurer" => "Convertir en projet Maven" n'existe pas ??
vasilakisfil

67

si vous exécutez

mvn eclipse:clean

suivi par

mvn eclipse:eclipse

if préparera le .classpathfichier eclipse pour vous. Autrement dit, ces commandes sont exécutées contre maven depuis la ligne de commande, c'est-à-dire en dehors de eclipse.


Notez que cela fonctionne en utilisant une variable classpath (M2_REPO) pour faire référence à vos dépendances, il n'utilise pas m2eclipse et je ne pense pas qu'il récupère et les dépendances que vous ajoutez lorsque vous travaillez sur le projet - mais c'est génial pour obtenir le configuration initiale en cours
matt b

@matt b: Vous devez refaire mvn eclipse: eclipse chaque fois que vos dépendances changent.
Buhb

Pour ajouter à ce que Buhb a dit, faites mnv eclipse: eclipse sur la ligne de commande et actualisez le projet Eclipse chaque fois que vous ajoutez plus de déps à pom.xml.
Binil Thomas

5
Cela n'est pas nécessaire lors de l'utilisation du plugin m2eclipse.
Pascal Thivent

3
J'utilise le plugin m2eclipse et je rencontre le problème après avoir importé un projet maven existant dans eclipse. Faire mvn eclipse:cleanet mvn eclipse:eclipserégler le problème pour moi.
aioobe

29

Je suppose que vous utilisez m2eclipse comme vous l'avez mentionné. Cependant, il n'est pas clair si vous avez créé votre projet sous Eclipse ou non, je vais donc essayer de couvrir tous les cas.

  1. Si vous avez créé un projet "Java" sous Eclipse (Ctrl + N> Projet Java), faites un clic droit sur le projet dans la vue Explorateur de packages et allez dans Maven> Activer la gestion des dépendances (en fonction de la structure initiale du projet, vous avez peut-être modifié il correspond à celui du maven, par exemple en l'ajoutant src/javaaux dossiers source sur le chemin de construction).

  2. Si vous avez créé un "Projet Maven" sous Eclipse (Ctrl + N> Projet Maven), alors il devrait déjà être "Maven ready".

  3. Si vous avez créé un projet Maven en dehors d'Eclipse (manuellement ou avec un archétype), importez-le simplement dans Eclipse ( cliquez avec le bouton droit sur la vue de l' Explorateur de packages et sélectionnez Importer ...> Projets Maven ) et ce sera "Maven ready".

Maintenant, pour ajouter une dépendance, cliquez avec le bouton droit sur le projet et sélectionnez Maven> Ajouter une dépendance ) ou modifiez le pom manuellement.

PS: évitez d'utiliser le plugin maven -eclipse si vous utilisez m2eclipse. Il n'y en a absolument pas besoin, ce sera déroutant, cela générera du désordre. Non, vraiment, ne l'utilisez pas à moins que vous ne sachiez vraiment ce que vous faites.


2
Je viens de découvrir que le plugin maven-eclipse-plugin était la cause de mes étranges erreurs de dépendance non résolues. Merci!
vaughan le

1
J'utilise juste EclipseNeon téléchargé depuis le site officiel .. Il n'y a pas d'option Maven dans le menu après avoir créé un projet Java standard. Avons-nous besoin d'installer quelque chose séparément ou tout est déjà téléchargé avec Neon?
Ewoks

@Pascal Thivent, j'ai importé le projet Maven. Je ne suis pas en mesure de trouver la solution pour celui-ci
Syed

19

Ajoutez ceci au fichier .classpath.

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

THX


1
oui, je dois ajouter cela manuellement partout depuis quelques années .... pourquoi n'impliquent-ils pas que les plugins eclipse reconnaissent automatiquement les dépendances maven?
rasoir

1
Merci pour cette solution. Cela a fonctionné pour moi. J'ai accidentellement supprimé des fichiers .project et .classpath. Cette solution a fonctionné pour moi pour ajouter des dépendances maven dans le chemin de classe,
Tahir Mehmood

Le raccourci pour générer automatiquement le fichier .classpath ci-dessus est Projet -> Maven -> Mettre à jour le projet Sinon, simplement Alt + F5
Venkateswara Rao

A travaillé pour moi aussi. J'ai résolu la plupart de mes dépendances manquantes mais j'ai encore quelques problèmes, alors je me demande si les solutions les plus conviviales ne fonctionnent pas car il y a une petite erreur quelque part (mais ce comportement n'aide pas à déboguer le problème ...)
xenoid

14

Faites un clic droit sur le projet Configurer> Convertir en projet Maven

Ensuite, vous pouvez voir tous les menus liés à Maven pour votre projet.


la bonne façon si vous n'avez pas créé de projet mvn en premier lieu
Hannes Schneidermayer

10

J'ai aimé ça ...

Faites un clic droit sur le projet -> configurer -> convertir en projet maven. Faites un clic droit sur le projet -> maven -> ajouter des dépendances.


5

Dans Eclipse (Mars), accédez à:

Propriétés du projet -> Maven. Assurez-vous que "Résoudre les dépendances des projets d'espace de travail" est désactivé .


Cela n'a pas résolu le problème d'origine, mais cela a résolu un autre problème persistant que je rencontre depuis des semaines - Après avoir désactivé cette option, mon projet, qui ne fonctionnait qu'à partir d'une ligne de commande maven, est à nouveau en cours d'exécution dans eclipse! Je vous remercie!
Bill Hileman

4

Je n'ai pas trouvé le maven ou configurer les menus, mais j'ai trouvé le bouton suivant qui a résolu mon problème:

entrez la description de l'image ici


2

Lorsque m2eclipse est correctement installé, il doit ajouter automatiquement des dépendances. Cependant, vous devez générer les fichiers du projet eclipse en entrant:

mvn eclipse:m2eclipse

ou si vous n'utilisez pas m2eclipse:

mvn eclipse:eclipse

3
Attention: depuis la version 2.8, maven-eclipse-plugin ne supporte plus "eclipse: m2eclipse" (impossible de trouver la raison / informations pourquoi)
Wolkenarchitekt

1

J'ai eu une légère variation qui a causé quelques problèmes - plusieurs sous-projets dans un projet. Dans ce cas, je devais aller dans chaque dossier individuel contenant un POM, exécuter la commande mvn eclipse: eclipse, puis copier / fusionner manuellement les entrées de chemin de classe dans le fichier de chemin de classe de mon projet.


1

Pour les versions plus récentes d'Eclipse (> = Mars), faites un clic droit sur projet> configurer> convertir en projet Maven


1

Ajout de mes réponses pour plusieurs raisons:

  • D'une manière ou d'une autre, aucune des réponses répertoriées n'a résolu directement mon problème.
  • Je n'ai pas trouvé «Activer la gestion des dépendances» sous Maven. J'utilise Eclipse 4.4.2 build le mercredi 4 février 2015.

Ce qui m'a aidé, c'est une autre option sous Maven appelée "Projet de mise à jour", puis lorsque je clique dessus, cette fenêtre s'ouvre avec une case à cocher qui dit "Forcer la mise à jour de Snapshot / Releases". Le véritable objectif de cette case à cocher est différent, je sais, mais cela a résolu le problème des dépendances. entrez la description de l'image ici


1

Rien de tout cela n'a résolu mon problème. mais ce que j'ai fait, c'est si cliquez sur le pom.xml, il y a un onglet en bas nommé dépendances. dans cet onglet, il est divisé en 2 sections, une appelée dépendances et une appelée gestion des dépendances. Sélectionnez tout dans la section des dépendances et cliquez sur Ajouter pour être sous le contrôle de gestion des dépendances. fermez et rouvrez votre projet.


0

Peut-être que vous pourriez vous pencher sur maven-eclipse-plugin au lieu de M2Eclipse.

Là, vous ajoutez essentiellement la configuration de maven-eclipse-plugin à votre pom.xml, puis exécutez mvn eclipse:eclipsece qui générera les fichiers requis .projectet .classpathpour Eclipse. Ensuite, vous aurez le chemin de construction correct dans Eclipse.


eclipse: eclipse est mauvais, ajoute toutes les bibliothèques, une par une, à vos dépendances au lieu de compter sur Maven
rasoir

0

Assurez-vous que votre POM respecte la convention de dénomination et qu'il est nommé en lettres minuscules comme pom.xmlet NON POM.xml.

Dans mon cas, tout allait bien, mais Eclipse s'est toujours plaint en essayant de faire un clic droit et Update project configuration- m'a dit que le POM ne pouvait pas être lu. Changé le nom en minuscules - pom.xmlde POM.xml- et cela a fonctionné.


0

J'ai rencontré ce problème aussi. Lorsque j'ajoute des dépendances dans le pom.xml, j'ai vérifié dans le dossier local /Users/xyz/.m2/et les jars y sont déjà téléchargés, mais je ne peux pas ajouter le chemin de construction de l'éclipse.

Ma version eclipse: Mars.2 Release (4.5.2)

cliquez droit sur projet > Maven > Activer la résolution de l'espace de travail

Et cela a résolu mon problème.


0

En règle générale, vous pouvez copier le fichier .classpath à partir d'un projet de travail car il n'y a rien de spécifique au projet ici en supposant que vous êtes structuré comme un projet Maven standard.


0

Cela a fonctionné pour moi dans Eclipse Oxygen (4.7.0):

Cliquez avec le bouton droit sur Projet -> Maven -> Sélectionnez les profils Maven ... puis cochez la case Repository Proxy, appuyez sur OK.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.