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é.
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:
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.
Trois vérifications obligatoires à effectuer pour la mise à jour automatique dans votre chemin de classe
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.
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?