plugin mvn generate example archetype maven jboss7.x m2eclipse maven-ear-plugin

maven - mvn - La ejecución del complemento no está cubierta por la configuración del ciclo de vida(JBossas 7 EAR archetype)



maven-ear-plugin example (10)

A partir de la versión 0.12 de Maven Eclipse (m2e), todos los objetivos del ciclo de vida de Maven deben asignarse a una extensión m2e instalada. En este caso, el maven-ear-plugin tenía un objetivo anulado: default-generate-application-xml .

Puede excluir objetivos de ciclo de vida no asignados simplemente siguiendo las instrucciones aquí:

https://wiki.eclipse.org/M2E_plugin_execution_not_covered

Alternativamente, simplemente haga clic derecho en el mensaje de error en Eclipse y elija la Quick Fix -> Ignore for every pom with such errors .

Debe tener cuidado al ignorar los objetivos del ciclo de vida: típicamente los objetivos hacen algo útil y si los configura para que sean ignorados en Eclipse, es posible que omita pasos de compilación importantes. También podría considerar agregar soporte a la extensión Maven Eclipse EAR para el objetivo del ciclo de vida no asignado.

Estoy usando Eclipse 3.7 Indigo con Maven M2E Plugin 1.0.100.

Usando el arquetipo JBoss 7.x JavaEE 6 EAR, el pom para EAR me está dando este error:

La ejecución del complemento no está cubierta por la configuración del ciclo de vida: org.apache.maven.plugins: maven-ear-plugin: 2.6: generate-application-xml (execution: 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>


Aunque la pregunta es demasiado antigua, me gustaría compartir la solución que funcionó para mí porque ya he verificado todo lo que se refiere a este error. Fue un dolor, pasé dos días intentando y al final la solución fue:

actualizar el plugin M2e en eclipse

limpiar y construir de nuevo


Con el mecanismo explicado en la respuesta de Jan, he ordenado al plugin m2e que ignore el objetivo "generate-application-xml". Esto elimina el error y parece funcionar, ya que m2e crea application.xml.

Entonces, básicamente, el error nos obligó a decidir qué mecanismo está a cargo de generar application.xml cuando la compilación Maven se ejecuta dentro de Eclipse bajo el control del plugin m2e. Y hemos decidido que m2e está a cargo.

<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-ear-plugin</artifactId> <version>2.6</version> <configuration> <version>6</version> <defaultLibBundleDir>lib</defaultLibBundleDir> </configuration> </plugin> </plugins> <pluginManagement> <plugins> **<!-- This plugin''s configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself. --> <plugin> <groupId>org.eclipse.m2e</groupId> <artifactId>lifecycle-mapping</artifactId> <version>1.0.0</version> <configuration> <lifecycleMappingMetadata> <pluginExecutions> <pluginExecution> <pluginExecutionFilter> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-ear-plugin</artifactId> <versionRange>[2.1,)</versionRange> <goals> <goal>generate-application-xml</goal> </goals> </pluginExecutionFilter> <action> <ignore></ignore> </action> </pluginExecution> </pluginExecutions> </lifecycleMappingMetadata> </configuration> </plugin>** </plugins> </pluginManagement> </build>


Eclipse tiene el concepto de construcciones incrementales. Esto es increíblemente útil ya que ahorra mucho tiempo.

¿Cómo es esto útil?

Digamos que acaba de cambiar un solo archivo .java. Los constructores incrementales podrán compilar el código sin tener que volver a compilar todo (lo que llevará más tiempo).

Ahora, ¿cuál es el problema con Maven Plugins?

La mayoría de los complementos maven no están diseñados para compilaciones incrementales y, por lo tanto, crean problemas para m2e. m2e no sabe si el objetivo del complemento es algo que es crucial o si es irrelevante. Si solo ejecuta cada complemento cuando cambia un único archivo, tomará mucho tiempo.

Esta es la razón por la cual m2e confía en la información de metadatos para descubrir cómo se debe manejar la ejecución. m2e ha presentado diferentes opciones para proporcionar esta información de metadatos y el orden de preferencia es el siguiente (de mayor a menor)

  1. archivo pom.xml del proyecto
  2. padres, abuelos, etc. archivos pom.xml
  3. [m2e 1.2+] preferencias de espacio de trabajo
  4. extensiones m2e instaladas
  5. [m2e 1.1+] metadatos de mapeo del ciclo de vida proporcionados por maven plugin
  6. metadatos de mapeo del ciclo de vida por defecto enviados con m2e

1,2 se refiere a especificar la sección de administración de complementos en la etiqueta de su archivo pom o cualquiera de sus padres. M2E lee esta configuración para configurar el proyecto. El fragmento de código ordena a m2e que jslint el jslint y compress objetivos del plugin yuicompressor-maven-plugin

<pluginManagement> <plugins> <!--This plugin''s configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself. --> <plugin> <groupId>org.eclipse.m2e</groupId> <artifactId>lifecycle-mapping</artifactId> <version>1.0.0</version> <configuration> <lifecycleMappingMetadata> <pluginExecutions> <pluginExecution> <pluginExecutionFilter> <groupId>net.alchim31.maven</groupId> <artifactId>yuicompressor-maven-plugin</artifactId> <versionRange>[1.0,)</versionRange> <goals> <goal>compress</goal> <goal>jslint</goal> </goals> </pluginExecutionFilter> <action> <ignore /> </action> </pluginExecution> </pluginExecutions> </lifecycleMappingMetadata> </configuration> </plugin> </plugins> </pluginManagement>

3) En caso de que no prefiera contaminar su archivo pom con estos metadatos, puede almacenarlo en un archivo XML externo (opción 3). A continuación se muestra un archivo de mapeo de muestra que instruye a m2e a ignorar jslint y compress objetivos del yuicompressor-maven-plugin

<?xml version="1.0" encoding="UTF-8"?> <lifecycleMappingMetadata> <pluginExecutions> <pluginExecution> <pluginExecutionFilter> <groupId>net.alchim31.maven</groupId> <artifactId>yuicompressor-maven-plugin</artifactId> <versionRange>[1.0,)</versionRange> <goals> <goal>compress</goal> <goal>jslint</goal> </goals> </pluginExecutionFilter> <action> <ignore/> </action> </pluginExecution> </pluginExecutions> </lifecycleMappingMetadata>

4) En caso de que no le guste ninguna de estas 3 opciones, puede usar un conector m2e (extensión) para el complemento maven. El conector a su vez proporcionará los metadatos a m2e. Puede ver un ejemplo de la información de metadatos dentro de un conector en este link . Es posible que haya notado que los metadatos se refieren a un configurador. Esto simplemente significa que m2e delegará la responsabilidad a esa clase particular de java proporcionada por el autor de la extensión. El configurador puede configurar el proyecto (por ejemplo, agregar carpetas de origen adicionales, etc.) y decidir si ejecuta el complemento maven real durante una compilación incremental (si no gestionado correctamente dentro del configurador, puede llevar a construcciones de proyectos sin fin)

Consulte estos enlaces para ver un ejemplo de la configuración ( link1 , link2 ). Entonces, en caso de que el complemento sea algo que pueda administrarse a través de un conector externo, entonces puede instalarlo. m2e mantiene una lista de dichos conectores aportados por otros desarrolladores. Esto se conoce como el catálogo de descubrimiento. m2e le solicitará que instale un conector si todavía no tiene ningún metadato de mapeo de ciclo de vida para la ejecución a través de cualquiera de las opciones (1-6) y el catálogo de descubrimiento tiene alguna extensión que puede administrar la ejecución.

La siguiente imagen muestra cómo m2e le solicita que instale el conector para el build-helper-maven-plugin. .

5) m2e alienta a los autores de los complementos a admitir el mapeo incremental del ciclo de vida del suministro y del suministro dentro del propio maven-plugin. Esto significa que los usuarios no tendrán que utilizar asignaciones o conectores de ciclo de vida adicionales. Algunos autores de complementos ya han implementado este

6) Por defecto, m2e contiene los metadatos del mapeo del ciclo de vida para la mayoría de los complementos comúnmente utilizados, como el compilador maven-compiler y muchos otros.

Ahora volvamos a la pregunta: probablemente solo pueda proporcionar un mapeo de ciclo de vida ignorado en 1, 2 o 3 para ese objetivo específico que está creando problemas para usted.


Esta es una "característica" del complemento M2E que se introdujo hace un tiempo. No está directamente relacionado con el plugin JBoss EAR, pero también ocurre con la mayoría de los otros plugins Maven.

Si tiene una ejecución de complemento definida en su pom (como la ejecución de maven-ear-plugin:generate-application-xml ), también necesita agregar información de configuración adicional para M2E que le indique a M2E qué hacer cuando la compilación se ejecute en Eclipse, por ejemplo, si la ejecución del complemento debe ser ignorada o ejecutada por M2E, en caso de que también se haga para compilaciones incrementales, ... Si esa información falta, M2E se queja al mostrar este mensaje de error:

"La ejecución del complemento no está cubierta por la configuración del ciclo de vida"

Consulte aquí para obtener una explicación más detallada y algunas configuraciones de muestra que deben agregarse al pom para que desaparezca ese error:

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


Pude resolver el mismo problema con maven-antrun-plugin y jaxb2-maven-plugin en Eclipse Kepler 4.3 al aplicar esta solución: http://wiki.eclipse.org/M2E_plugin_execution_not_covered#Eclipse_4.2_add_default_mapping
Así que el contenido de mi% elipse_workspace_name% /. Metadata / .plugins / org.eclipse.m2e.core / lifecycle-mapping-metadata.xml es el siguiente:

<?xml version="1.0" encoding="UTF-8"?> <lifecycleMappingMetadata> <pluginExecutions> <pluginExecution> <pluginExecutionFilter> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-antrun-plugin</artifactId> <versionRange>1.3</versionRange> <goals> <goal>run</goal> </goals> </pluginExecutionFilter> <action> <ignore /> </action> </pluginExecution> <pluginExecution> <pluginExecutionFilter> <groupId>org.codehaus.mojo</groupId> <artifactId>jaxb2-maven-plugin</artifactId> <versionRange>1.2</versionRange> <goals> <goal>xjc</goal> </goals> </pluginExecutionFilter> <action> <ignore /> </action> </pluginExecution> </pluginExecutions> </lifecycleMappingMetadata>

* Tuve que reiniciar Eclipse para ver los errores desaparecidos.


Traté de ejecutar el taponamiento específico justo después de la limpieza, es decir, después de la limpieza (por defecto es la fase de limpieza). Esto funcionó para mí con eclipse índigo. Solo agregué el post-clean resolvió el problema para mí.

<executions> <execution> <configuration> </configuration> <phase>post-clean</phase> <goals> <goal>update-widgetset</goal> </goals> </execution> </executions>


Una buena solución para recordarle que m2e podría estar mejor configurado, sin que el proyecto herede un marcador de error falso positivo, es simplemente degradar esos errores a advertencias:

Ventana -> Preferencias -> Maven -> Errores / Advertencias -> La ejecución del complemento no está cubierta por la configuración del ciclo de vida = Advertencia


de todos modos es demasiado tarde pero mi solución era simple, haga clic derecho en el mensaje de error en Eclipse y elija Arreglo rápido >> Ignorar para cada pom con tales errores


M2E_plugin_execution_not_covered comprender el contenido en M2E_plugin_execution_not_covered y seguir los pasos que se mencionan a continuación:

  • Elija el archivo org.eclipse.m2e.lifecyclemapping.defaults desde la carpeta del complemento eclipse
  • Extraiga y abra lifecycle-mapping-metadata.xml donde puede encontrar todas las pluginExecutions.
  • Agregue las expresiones pluginExecutions de sus complementos que se muestran como errores con <ignore/> debajo de <action> etiquetas <action> .

Por ejemplo: para el error write-project-properties, agregue este fragmento en la sección <pluginExecutions> del archivo lifecycle-mapping-metadata.xml:

<pluginExecution> <pluginExecutionFilter> <groupId>org.codehaus.mojo</groupId> <artifactId>properties-maven-plugin</artifactId> <versionRange>1.0-alpha-2</versionRange> <goals> <goal>write-project-properties</goal> </goals> </pluginExecutionFilter> <action> <ignore /> </action> </pluginExecution>

  • Reemplazar ese archivo XML en el JAR
  • Reemplace el JAR actualizado en la carpeta de plugins de Eclipse
  • Reiniciar Eclipse

No debería ver errores en el futuro para ningún proyecto.