web-dev-qa-db-fra.com

Comment ajouter la bibliothèque "Maven Managed Dependencies" dans le chemin de construction eclipse?

J'ai créé un projet Maven et je veux ajouter toutes les dépendances Maven au chemin de génération du projet dans Eclipse. Lorsque je vais dans Chemin de construction Java> Ajouter une bibliothèque> Dépendance gérée Maven> Suivant dans la boîte de dialogue des propriétés du projet, il me demande d'utiliser "Paramètre du projet Maven" pour configurer la résolution de dépendance Maven.

Ma question est de savoir comment ajouter des dépendances maven dans le chemin de construction actuel.

60
Amit Patel

à partir du type de ligne de commande:

mvn Eclipse:eclipse

cela ajoutera toutes les dépendances que vous avez dans votre pom.xml dans Eclipse ...

cependant, si vous n'avez rien fait de tel avant, vous devrez peut-être effectuer une autre étape une seule fois.

Fermez Eclipse, puis exécutez la commande suivante à partir du shell:

mvn -Declipse.workspace=<Eclipse workspace> Eclipse:add-maven-repo

échantillon:

mvn -Declipse.workspace=/home/ft/workspaces/wksp1/ Eclipse:add-maven-repo
46
ftravers

Si vous avez m2e installé et que le projet est déjà un projet maven mais que les dépendances maven sont toujours manquantes, le moyen le plus simple de fonctionner a été

  • clic droit sur le projet,
  • Maven,
  • Mettre à jour le projet ...

Eclipse screenshot

33
schnatterer

J'ai le même problème avec SpringSource Tool Suite. J'importais un projet Maven existant qui fonctionnait bien à partir de la ligne de commande. Cependant, lorsque j'ai importé le projet à l'aide de import -> Maven -> projet Maven existant, le projet n'a pas été importé correctement et je ne pouvais pas ajouter la bibliothèque de dépendances gérées par maven au chemin de génération.

Si j'ai exécuté mvn install à partir de la ligne de commande, le projet a été construit avec succès. Si j'ai lancé mvn Eclipse: eclipse puis importé dans STS, tout a fonctionné comme prévu, sauf que, bien sûr, je devais le réexécuter à chaque fois que je mettais à jour le pom, ce qui n'était pas souhaitable.

J'ai résolu le problème en exécutant mvn Eclipse:eclipse, puis en mettant à jour manuellement .classpath pour éliminer les dépendances M2_REPO ajoutées par Eclipse:eclipse et en ajoutant l'entrée de dépendance m2Eclipse:

<classpathentry kind="con" path="org.Eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
  <attributes>
    <attribute name="org.Eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
  </attributes>
</classpathentry>

Ensuite, j'ai importé le projet Maven existant et cela a fonctionné comme prévu.

Ceci est un hack et je ne suis pas sûr des autres conséquences de l'exécution de Eclipse:ecplise lors de l'utilisation de m2Eclipse. Mais cela m'a au moins permis de compiler mon projet pour pouvoir coder.


EDIT 1/4/2013

La solution de contournement que j'ai postée ci-dessus fonctionne temporairement et je n'ai jamais découvert d'effets secondaires négatifs. Cependant, j'ai eu ce problème à quelques reprises maintenant et à chaque fois, le problème est qu'il y a une partie du pom que maven accepte, mais m2Eclipse continue.

Je vous recommande donc de supprimer des parties du pom 1 à 1 jusqu'à ce que vous puissiez réussir le projet. Continuez simplement à exécuter maven -> mettez à jour la configuration après chaque modification de pom jusqu'à ce que cela fonctionne comme il se doit. Je commence généralement par supprimer les blocs de balises de configuration du plug-in un par un, en commençant par les plus suspects (c'est-à-dire les plus compliqués).

Une fois qu'il est correctement nettoyé, vous pouvez inverser le pom et il devrait toujours fonctionner comme prévu.

Une fois que je suis lancé, je recherche la ou les configurations incriminées pour essayer de déterminer le correctif «approprié» (selon m2Eclipse, de toute façon).

Espérons que cette approche mène à la solution permanente au lieu de se contenter d’une solution de contournement simpliste!

11
Marquee

Assurez-vous que votre stratégie de packaging définie dans votre pom.xml n'est pas "pom". Ce devrait être "jar" ou autre chose. Une fois que vous avez fait cela, mettez à jour votre projet en cliquant dessus et allez dans Maven -> Mettre à jour le projet ...

10
Pedro Madrid
  • Installez le plugin M2E.
  • Cliquez avec le bouton droit de la souris sur votre projet et sélectionnez Configurer -> Convertir en projet Maven.

enter image description here

  • Ensuite, un fichier pom.xml apparaîtra dans votre projet. Double-cliquez sur le fichier pom.xml, sélectionnez l'onglet Dépendance pour ajouter les fichiers jar dont dépend votre projet.
7
smwikipedia

Vous pouvez installer M2Eclipse et ouvrir le projet en tant que projet maven dans Eclipse. Cela créera la configuration et les entrées nécessaires. 

Ceci est également utile pour les mises à jour ultérieures du pom. Avec le plugin maven Eclipse, vous devrez régénérer manuellement la configuration Eclipse pour chaque modification. 

6
Raghuram

Si Maven-> Mettre à jour le projet ne fonctionne pas pour vous? ligne de commande et exécutez ces commandes.

mvn Eclipse:clean
mvn Eclipse:eclipse -Dwtpversion=2.0

Ouvrez Eclipse Importez le projet Maven existant . Vous verrez la dépendance maven dans notre projet.

J'espère que ça marche.

2
Sabarish

Je pourrais comprendre le problème. Je recevais un avertissement au démarrage d’Eclipse.

The Maven Integration requires that Eclipse be running in a JDK, because a number of Maven core plugins are using jars from the JDk.

Please make sure the -vm option in Eclipse.ini is pointing to a JDK and verify that
Installed JRE's are also using JDK installs

J'ai changé le fichier Eclipse.ini et ajouté après et redémarré Eclipse

-vm
C:/Program Files/Java/jdk1.6.0_21/bin/javaw.exe

Maintenant, je peux voir la bibliothèque "Maven Dependency" incluse automatiquement dans le chemin de génération Java.

2
Amit Patel

Suivez ces étapes

1) Aller dans le chemin de classe des projets 

2) Aller dans l'onglet bibliothèque

3) cliquez sur Ajouter une bibliothèque

4) Dans la boîte de dialogue ouverte, sélectionnez Maven Managed Dependencies

5) Cliquez sur Suivant

6) Dans la nouvelle boîte de dialogue, cliquez sur Gérer les paramètres du projet.

7) Dans la boîte de dialogue ouverte, cochez la case Résoudre les dépendances à partir de l'espace de travail.

8) Cliquez sur Restaurer les paramètres par défaut

9) Cela fera un certain processus et vous aurez maintenant toutes vos dépendances dans votre bibliothèque.

1
raj

Si vous utilisez un plugin Eclipse pour effectuer vos tâches maven (il y en a 2: M2ecipse de sonatype le "officiel" et q4e sur Google Code), il existe des options dans les menus contextuels (clic droit sur le projet) que sans douleur.

Vous pouvez avoir les deux plugins exécutés en même temps dans votre atelier Eclipse et les utiliser indifféremment projet par projet.

0
Alain Pannetier

Essayez: Faites un clic droit sur votre projet-> Maven-> Désactiver la gestion des dépendances ..__et réactivez la gestion des dépendances.

0
ChangePicture

Vous pouvez également envisager de maven-dependency-plugin sur votre pom:

<plugins>
... 
    <plugin> 
        <artifactId>maven-dependency-plugin</artifactId> 
            <executions> 
                <execution> 
                    <phase>process-resources</phase> 
                    <goals> 
                        <goal>copy-dependencies</goal> 
                    </goals> 
                    <configuration>   
                        <outputDirectory>${project.build.directory}/lib</outputDirectory> 
                    </configuration> 
                </execution> 
            </executions> 
    </plugin> 
...
</plugins>

Ensuite, vous pouvez exécuter "mvn package" et maven copiera toutes les dépendances nécessaires dans votre répertoire chemin_projet/cible/nom_projet/WEB-INF/lib /. De là, vous pouvez les copier dans votre répertoire project/lib et les ajouter en tant que fichiers JAR externes (configuration du chemin de construction des paramètres de votre projet).

0
Picrochole

Si vous avez supprimé la dépendance Maven de Bibliothèque par accident. Ajouter ci-dessous dans pom.xml

<build>     
        <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.3</version>
                <configuration>
                    <source>1.7</source>
                    <target>1.7</target>
                </configuration>
            </plugin>
        </plugins>
</build>
0
Guest