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?

James Goodwin
la source

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.

Buhb
la source
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.

Davek
la source
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.

Pascal Thivent
la source
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

Apurva Singh
la source
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.

DevJav
la source
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.

madhu_karnati
la source
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é .

Thomas Beer
la source
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

Borjab
la source
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
EJB
la source
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.

Mearde
la source
1

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

JBoy
la source
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

Saurabh Patil
la source
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.

amralieg
la source
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.

Juha Syrjälä
la source
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é.

Karun
la source
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.

Tourbillon
la source
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.

Puneet Lamba
la source
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.

r590
la source