Comment éliminer le “maven-enforcer-plugin (but” enforce “) est ignoré par m2e” par eclipse?

Je suis en train de configurer un projet maven parent enfant multi-module en utilisant maven et eclipse m2e, j’utilise les dernières nouveautés eclipse Juno SR1 qui est m2e 1.2.0

le pom parent utilise le plugin enforcer, le parent pom.xml a ce qui suit dans sa section plugin

 org.apache.maven.plugins maven-enforcer-plugin 1.1.1    enforce       enforce     enforce-banned-dependencies  enforce       commons-logging:commons-logging     true     

Chacun des projets enfants a un message d’erreur indiquant que maven-enforcer-plugin (goal "enforce") is ignored by m2e.

  • Quelle est la signification de ce message?
  • Comment configurer les choses pour éliminer ce message?
  • dois-je configurer les parameters du projet eclipse ou les parameters pom.xml?

Le plugin eclipse maven exécute un fichier de projets pom.xml afin de comprendre comment le projet maven est configuré et de traduire la configuration de maven pom.xml en une configuration éclipse. Un pom.xml peut référencer un nombre arbitraire de plugins maven et chacun de ces plugins a le potentiel de fuir de la mémoire ou de faire des choses nuisibles à l’éclipse. Donc, par défaut, le plugin m2e eclipse ignore tous les plugins maven à moins que ces plugins maven aient un connecteur spécial m2e plugin qui indique à m2e comment intégrer le plugin maven dans eclipse. En résumé, m2e défend le processus JVM eclipse contre un plugin maven bogué, en disant que pour chaque plugin maven il doit y avoir un connecteur m2e pour relier maven et eclipse.

Donc, pour se débarrasser de l’avertissement, j’ai ajouté ce qui suit à la section de gestion des plugins du parent pom.xml

     org.eclipse.m2e lifecycle-mapping 1.0.0      org.apache.maven.plugins maven-enforcer-plugin [1.0.0,)  enforce              

Il semble que org.eclipse.m2e:lifecycle-mapping est un plugin maven conçu pour contenir les méta-données pour communiquer avec le plugin eclipse m2e quand il traite un maven pom.xml. défini dans pom.xml lorsque eclipse exécute le fichier pom.xml dans l’interface de l’éclipse.

A partir de la version m2e 1.4 et supérieure: Vous pouvez intégrer la configuration de cycle de vie nécessaire dans pom (parent-pom ou project-pom) ou intégrer les informations dans la configuration globale m2e dans eclipse. Vous avez également des actions de correction rapide pour appliquer ces modifications.

La dernière option consiste à rechercher des connecteurs m2e ou à passer à des versions plus récentes de différents plug-ins maven avec m2e-support intégré (par exemple, pour jaxb-plugins).

Ici, je pense que la définition dans le pom est la plus simple.

Voir aussi: https://www.eclipse.org/m2e/documentation/m2e-execution-not-covered.html

Juste un FYI pour ceux d’entre vous qui ont un problème avec la configuration de votre IDE dans votre modèle de construction. Gardez un œil sur cette demande d’amélioration actuellement ciblée pour la version Kepler:

Bogue 350414: Stocker les connecteurs m2e ignorés en dehors du projet pom.xml https://bugs.eclipse.org/bugs/show_bug.cgi?id=350414

Pour moi, c’était un problème similaire

J’ai eu maven 3.0.3 et java 1.5

et mon pom avait

   enforce-versions  enforce     [3.0.3,2.2.1,)   [1.7, 1.8)       

Comme vous pouvez le voir, je n’ai pas vraiment rencontré les règles, j’ai donc mis à jour Java et j’ai obtenu mvn et j’étais prêt. J’espère que cela aide quelqu’un.

Un autre écueil existe quand on a plusieurs pluginExecutionFilters. Celles-ci doivent être au bon endroit dans le fichier pom.xml! Pour moi, il était difficile de trouver aucune erreur ou avertissement du déplacement.

C’est le bon code pour avoir plusieurs pluginExecutionFilters:

     org.eclipse.m2e lifecycle-mapping 1.0.0      org.apache.maven.plugins maven-enforcer-plugin [1.0.0,)  enforce        com.googlecode.maven-java-formatter-plugin ... 

Comment éliminer le “maven-enforcer-plugin (but” enforce “) est ignoré par m2e” par eclipse?

Bien que le plugin eclipse lifecycle-mapping ait fonctionné pour moi sur d’autres projets, je travaille actuellement dans une boutique IntelliJ avec mon Eclipse caché et je ne veux pas m’exposer en changeant tous leurs fichiers pom pour inclure quelque chose de l’ org.eclipse.m2e de groupe org.eclipse.m2e .

Après quelques essais, j’ai constaté que cet avertissement pouvait ne pas apparaître en modifiant les mappages du cycle de vie dans les préférences de Maven. Franchement, je ne suis pas sûr à 100% de ce que cela fait mais je n’ai pas vu d’effets secondaires alors …

  1. Dans Eclipse, accédez à: Préférences → Maven → Mappages de cycle de vie.
  2. En cliquant sur les Open workspace lifecycle mappings metadata lifecycle-mapping-metadata.xml s’ouvre dans un onglet en arrière-plan. Je suppose que cela coïncide avec le fichier suivant sous votre sous-répertoire de travail:

     .metadata/.plugins/org.eclipse.m2e.core/lifecycle-mapping-metadata.xml 
  3. Ensuite, ajoutez la strophe suivante au bas du fichier dans ... .

       org.apache.maven.plugins maven-enforcer-plugin [1.0.0,)  enforce       
  4. Une fois le fichier XML enregistré, vous devrez revenir à la fenêtre des préférences et appuyer sur Reload workspace lifecycle mappings metadata qui comstacknt le fichier.

  5. Enfin, vous devrez faire un projet de mise à jour de maven sur tous vos projets pour voir les avertissements disparaître.

J’espère que cela t’aides.