J'utilise Eclipse 3.7 Indigo avec Maven M2E Plugin 1.0.100.
En utilisant l'archétype JBoss 7.x JavaEE 6 EAR, le pom pour EAR me donne cette erreur:
Exécution du plugin non couverte par la configuration du cycle de vie: org.apache.maven.plugins: maven-ear-plugin: 2.6: generate-application-xml (exécution: default-generate-application-xml, phase: generate-resources)
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-ear-plugin</artifactId>
<version>2.6</version>
<configuration>
<!-- Tell Maven we are using Java EE 6 -->
<version>6</version>
<!-- Use Java EE ear libraries as needed. Java EE ear libraries
are in easy way to package any libraries needed in the ear, and automatically
have any modules (EJB-JARs and WARs) use them -->
<defaultLibBundleDir>lib</defaultLibBundleDir>
<modules></modules>
</configuration>
<plugin>
la source
target
dossier. Vous ne voudriez pas que cela soit refait "incrémentalement" lors de l'enregistrement de chaque fichier source. Ou peut-être que vous le voulez. Vraiment, m2e n'a aucune idée de votre construction spécifique. Vous pouvez stocker ce que m2e doit faire dans Eclipse, POM, ou éventuellement installer un connecteur m2e qui ajoute plus de connaissances à m2e pour gérer l'étape de construction. Ce sont les options que vous devriez voir. Je comprends que vous ne voulez pas rendre votre POM m2e conscient, mais c'est un bon endroit pour configurer cela de manière centralisée pour tous vos développeurs.de toute façon, il est trop tard mais ma solution était un simple clic droit sur le message d'erreur dans Eclipse et en choisissant Quick Fix >> Ignorer pour chaque pom avec de telles erreurs
la source
Eclipse a le concept des builds incrémentiels, ce qui est incroyablement utile car cela permet de gagner beaucoup de temps.
Comment est-ce utile
Supposons que vous venez de modifier un seul fichier .java. Les constructeurs incrémentiels pourront compiler le code sans avoir à tout recompiler (ce qui prendra plus de temps).
Maintenant quel est le problème avec les plugins Maven
La plupart des plugins maven ne sont pas conçus pour des constructions incrémentielles et créent donc des problèmes pour m2e. m2e ne sait pas si le but du plugin est quelque chose de crucial ou s'il n'est pas pertinent. S'il n'exécute que chaque plugin lorsqu'un seul fichier change, cela prendra beaucoup de temps.
C'est la raison pour laquelle m2e s'appuie sur les informations de métadonnées pour déterminer comment l'exécution doit être gérée. m2e a proposé différentes options pour fournir ces informations de métadonnées et l'ordre de préférence est le suivant (du plus élevé au plus bas)
1,2 fait référence à la spécification de la section pluginManagement dans la balise de votre fichier pom ou de l'un de ses parents. M2E lit cette configuration pour configurer le projet.L'extrait de code ci-dessous indique à m2e d'ignorer les objectifs
jslint
etcompress
du yuicompressor-maven-plugin3) Dans le cas où vous ne préférez pas polluer votre fichier pom avec ces métadonnées, vous pouvez les stocker dans un fichier XML externe (option 3). Vous trouverez ci-dessous un exemple de fichier de mappage qui demande à m2e d'ignorer les objectifs
jslint
etcompress
du yuicompressor-maven-plugin4) Si vous n'aimez pas l'une de ces 3 options, vous pouvez utiliser un connecteur m2e (extension) pour le plugin maven qui fournira à son tour les métadonnées à m2e. Vous pouvez voir un exemple des informations de métadonnées dans un connecteur à ce lien . Vous avez peut-être remarqué que les métadonnées font référence à un configurateur. Cela signifie simplement que m2e déléguera la responsabilité à cette classe Java particulière fournie par l'auteur de l'extension. pas correctement géré dans le configurateur, cela peut conduire à des constructions de projets sans fin)
Reportez - vous ces liens pour un exemple de la configuratior ( link1 , lien2 ). Donc, dans le cas où le plugin est quelque chose qui peut être géré via un connecteur externe, vous pouvez l'installer. m2e tient à jour une liste de ces connecteurs fournis par d'autres développeurs, ce que l'on appelle le catalogue de découverte. m2e vous invitera à installer un connecteur si vous ne disposez pas déjà de métadonnées de mappage de cycle de vie pour l'exécution via l'une des options (1-6) et le catalogue de découverte a une extension qui peut gérer l'exécution.
L'image ci-dessous montre comment m2e vous invite à installer le connecteur pour le build-helper-maven-plugin. .
5) m2e encourage les auteurs de plugins à prendre en charge la construction incrémentielle et à fournir le mappage du cycle de vie dans le maven-plugin lui-même.Cela signifie que les utilisateurs n'auront pas à utiliser de mappages ou de connecteurs de cycle de vie supplémentaires.Certains auteurs de plugins l'ont déjà implémenté
6) Par défaut, m2e contient les métadonnées de cartographie du cycle de vie pour la plupart des plugins couramment utilisés comme le maven-compiler-plugin et bien d'autres.
Revenons maintenant à la question: vous pouvez probablement simplement fournir une cartographie du cycle de vie ignorée en 1, 2 ou 3 pour cet objectif spécifique qui vous crée des problèmes.
la source
Une bonne solution de contournement pour vous rappeler que m2e pourrait être mieux configuré, sans que le projet n'hérite d'un marqueur d'erreur faux positif, consiste simplement à rétrograder ces erreurs en avertissements:
Fenêtre -> Préférences -> Maven -> Erreurs / Avertissements -> Exécution du plugin non couverte par la configuration du cycle de vie = Avertissement
la source
J'ai essayé d'exécuter un branchement spécifique juste après le nettoyage, c'est-à-dire après le nettoyage (par défaut, c'est la phase de nettoyage). Cela a fonctionné pour moi avec l'indigo eclipse. L'ajout du post-nettoyage a résolu le problème pour moi.
la source
phase
et ungoal
pour leexecution
dans le pom.xml qui m'a été donné, et j'obtiens toujours l'erreur.J'ai pu résoudre le même problème avec maven-antrun-plugin et jaxb2-maven-plugin dans Eclipse Kepler 4.3 en appliquant cette solution: http://wiki.eclipse.org/M2E_plugin_execution_not_covered#Eclipse_4.2_add_default_mapping
Donc le contenu de mon% elipse_workspace_name% /. metadata / .plugins / org.eclipse.m2e.core / lifecycle-mapping-metadata.xml se présente comme suit:
* J'ai dû redémarrer Eclipse pour voir les erreurs disparues.
la source
À partir de la version 0.12 de Maven Eclipse (m2e), tous les objectifs du cycle de vie de Maven doivent correspondre à une extension m2e installée. Dans ce cas, le
maven-ear-plugin
avait un objectif non mappédefault-generate-application-xml
.Vous pouvez exclure des objectifs de cycle de vie non mappés en suivant simplement les instructions ici:
https://wiki.eclipse.org/M2E_plugin_execution_not_covered
Sinon, cliquez simplement avec le bouton droit sur le message d'erreur dans Eclipse et choisissez
Quick Fix
->Ignore for every pom with such errors
.Vous devez être prudent lorsque vous ignorez les objectifs du cycle de vie: généralement, les objectifs font quelque chose d'utile et si vous les configurez pour qu'ils soient ignorés dans Eclipse, vous risquez de manquer des étapes de construction importantes. Vous pouvez également envisager d'ajouter la prise en charge de l'extension EAR Maven Eclipse pour l'objectif de cycle de vie non mappé.
la source
Avec le mécanisme expliqué dans la réponse de Jan, j'ai demandé au pluging m2e d'ignorer l'objectif "generate-application-xml". Cela élimine l'erreur et semble fonctionner puisque m2e crée application.xml.
Donc, fondamentalement, l'erreur nous a obligés à décider quel mécanisme est en charge pour générer application.xml lorsque la construction Maven s'exécute dans Eclipse sous le contrôle du plugin m2e. Et nous avons décidé que m2e était en charge.
la source
Vous devez comprendre le contenu de M2E_plugin_execution_not_covered et suivre les étapes mentionnées ci-dessous:
<ignore/>
sous<action>
.Par exemple: pour l'erreur write-project-properties, ajoutez cet extrait sous la
<pluginExecutions>
section du fichier lifecycle-mapping-metadata.xml:Vous ne devriez voir aucune erreur à l'avenir pour aucun projet.
la source
Même si la question est trop ancienne, mais j'aimerais partager la solution qui a fonctionné pour moi car j'ai déjà tout vérifié en ce qui concerne cette erreur. C'était pénible, j'ai passé deux jours à essayer et à la fin la solution était:
mettre à jour le plugin M2e dans eclipse
nettoyer et reconstruire
la source