web-dev-qa-db-fra.com

Comment faire en sorte que mon projet Eclipse-Maven mette automatiquement à jour son chemin de classe lorsque je change une dépendance dans mon fichier pom.xml?

J'utilise Eclipse Mars avec Maven (v 3.3). Lorsque je mets à jour une dépendance dans mon pom (change de version), mon projet Eclipse-Maven ne la détecte pas, même lorsque je clique avec le bouton droit de la souris sur mon projet et que je sélectionne «Maven» -> «Mettre à jour le projet». Je le sais parce que Je ne vois pas d'erreur de compilation dans l'éditeur Java Eclipse que je vois lorsque je construis le projet sur la ligne de commande à l'aide de

mvn clean install

Lorsque je retire le projet de l'espace de travail et que je le réimporte, les choses redeviennent normales. Cependant, c'est un processus fastidieux. Comment faire en sorte que mon projet Maven-Eclipse détecte automatiquement les modifications apportées à mon pom et mette à jour les bibliothèques de projet de manière appropriée?

Et oui, dans le menu «Projet», «Construire automatiquement» est coché.

11
Dave

Lorsque vous importez le projet dans Eclipse, utilisez le support Maven intégré à Eclipse (également appelé m2e). Je recommande de ne pas utiliser mvn Eclipse:eclipse car cela ne donne pas les meilleurs résultats (comme vous le voyez). Maven est un outil de gestion de la construction et des dépendances, pas un IDE; S'attendre à ce qu'il gère des éléments spécifiques à l'IDE est stupide, à mon avis (je réalise que l'équipe Maven pense différemment, que Maven devrait être responsable de la gestion de votre IDE, mais c'est un non-sens).

Donc, si le projet est disponible sur votre système, supprimez tous les fichiers spécifiques à Eclipse (généralement .classpath, .project et le dossier .settings), ils ont été générés par mvn Eclipse:eclipse et vous ne souhaitez pas qu'ils interfèrent avec le processus d'importation "correct" décrit. ici. Ensuite, dans Eclipse, utilisez Fichier> Importer> Maven> Projets Maven existants pour importer le projet. Cela devrait permettre une meilleure intégration entre Eclipse et maven, y compris la mise à jour automatique du chemin de construction Eclipse lors de la modification du pom.

En guise de vérification rapide, une fois l'importation effectuée de cette manière, vous devriez voir un groupe appelé Maven Dependencies dans l'onglet Bibliothèques du chemin de construction du projet (dans la boîte de dialogue Propriétés). Comme ça:

 enter image description here

Si vous souhaitez que la configuration du projet Eclipse soit automatiquement mise à jour à chaque modification du pom, vous devez définir un paramètre (expérimental) sous Preferences> Maven. Sachez que cela peut ne pas être souhaitable, cependant - comme indiqué dans cette demande de fonctionnalité , il s’agit d’un processus assez long qui touche un tas de choses dans le projet Eclipse; faire cela automatiquement à chaque changement de pom.xml pourrait être plus ennuyeux que ça en vaut la peine.

 enter image description here

22
E-Riz

Trois vérifications obligatoires à effectuer pour la mise à jour automatique dans votre chemin de classe

  1. Votre référentiel n’est pas synchronisé avec votre IDE Eclipse. Veuillez vérifier les paramètres ci-dessous dans votre IDE .  External Maven
  2. Cliquez avec le bouton droit de la souris sur le fichier POM.xml de votre IDE et recherchez le profil Maven qui devrait être activé automatiquement. De plus, les cases à cocher Hors ligne et Forcer la mise à jour ne doivent pas être activées. S'il vous plaît se référer à l'image ci-dessous.  autoactivated
  3. Vérifiez toujours que vos paramètres utilisateur correspondent à votre fichier maven settings.xml local, comme indiqué dans la figure ci-dessous .  enter image description here
  4. Après avoir effectué toutes ces vérifications, actualisez votre espace de travail Eclipse pour que ces modifications soient reflétées.
5
Praveen Kumar K S

Eclipse devrait mettre à jour votre chemin de classe. Si ce n'est pas le cas, cela signifie que quelque chose ne va pas.

Il est difficile de dire exactement quel est le problème, sans en savoir plus sur le fichier pom.xml de votre projet. Plus d'informations peuvent être nécessaires pour résoudre le problème, mais je vais juste essayer de vous aider:

Ouvrez le fichier .project dans le dossier racine de votre projet et vérifiez le classement des générateurs et des natures. Il est possible qu’une autre nature du projet provoque également l’échec de maven2Nature. Déplacez la nature maven et voyez si cela aide quelque chose.

Vous pourriez aussi penser qu'Eclipse ne met pas à jour vos dépendances car il n'ajoute pas certains indicateurs d'erreur dans le projet qui devraient être présents avec de nouvelles dépendances. Si c'est le cas, essayez de nettoyer le projet actuel (projet> nettoyer ...). Maven dans Eclipse ne déclenche pas nécessairement une reconstruction complète lorsque les dépendances sont mises à jour.

Si rien ne fonctionne, fermer/ouvrir le projet pourrait résoudre le problème plus rapidement que de réimporter.

0
Teemu Ilmonen

Ce que tu as écrit devrait marcher. Avez-vous vérifié ceci:

  • est-ce que "pure" mvn install du terminal voit vos modifications dans POM?

  • peut-être que certains plugins sont peut-être buggés, des dépendances cachées dans target, et mvn clean install sont nécessaires

  • vous pouvez exécuter Eclipse dans un nouvel espace de travail et importer votre projet là-bas, cela peut parfois aider en cas de problèmes aussi étranges

  • au lieu d'importer le projet Maven dans Eclipse via m2Eclipse, vous pouvez essayer de créer des fichiers Eclipse via l'ancien mvn Eclipse:eclipse et voir ce qu'il se passe ensuite.

  • cela fonctionne-t-il correctement lorsque vous essayez d'importer votre projet Maven vers un autre IDE, par exemple IntelliJ Community Edition, gratuitement?

0
iirekm