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 (ejecución: 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>
fuente
target
carpeta. No querrá que se vuelva a hacer "incrementalmente" al guardar cada archivo fuente. O tal vez usted no quiere eso. Realmente, m2e no tiene idea de su construcción específica. Puede almacenar lo que m2e debería hacer en Eclipse, POM, o posiblemente instalar un conector m2e que agregue más conocimiento a m2e para manejar el paso de compilación. Estas son las opciones que deberías ver. Entiendo que no desea que su POM sea consciente de m2e, pero es un buen lugar para configurarlo centralmente para todos sus desarrolladores.de todos modos es demasiado tarde, pero mi solución fue simplemente hacer clic derecho en el mensaje de error en Eclipse y elegir Quick Fix >> Ignorar para cada pom con tales errores
fuente
Eclipse tiene el concepto de compilaciones 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 creadores incrementales podrán compilar el código sin tener que volver a compilar todo (lo que llevará más tiempo).
¿Cuál es el problema con los complementos de Maven?
La mayoría de los complementos de Maven no están diseñados para construcciones incrementales y, por lo tanto, crean problemas para m2e. m2e no sabe si el objetivo del complemento es algo crucial o irrelevante. Si solo ejecuta cada complemento cuando cambia un solo archivo, tomará mucho tiempo.
Esta es la razón por la cual m2e se basa en 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,2 se refiere a especificar la sección pluginManagement en la etiqueta de su archivo pom o cualquiera de sus padres. M2E lee esta configuración para configurar el proyecto. A continuación, el fragmento indica a m2e que ignore los objetivos
jslint
ycompress
del complemento yuicompressor-maven-plugin3) 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 indica a m2e que ignore los objetivos
jslint
ycompress
del complemento yuicompressor-maven-plugin4) 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 enlace . 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 suministrada por el autor de la extensión. El configurador puede configurar el proyecto (como agregar carpetas de origen adicionales, etc.) y decidir si ejecutar el complemento real de Maven durante una compilación incremental (si no se gestiona correctamente dentro del configurador, puede conducir a infinitas construcciones de proyectos)
Consulte estos enlaces para ver un ejemplo de la configuración ( enlace1 , enlace2 ). Entonces, en caso de que el complemento sea algo que se pueda administrar a través de un conector externo, puede instalarlo. m2e mantiene una lista de dichos conectores aportados por otros desarrolladores. Esto se conoce como el catálogo de descubrimiento. m2e le pedirá que instale un conector si aún no tiene metadatos de mapeo del 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 imagen siguiente muestra cómo m2e le solicita que instale el conector para el complemento build-helper-maven. .
5) m2e alienta a los autores de complementos a admitir la creación incremental y el suministro del mapeo del ciclo de vida dentro del complemento maven mismo. Esto significaría que los usuarios no tendrán que usar mapeos o conectores adicionales del ciclo de vida. Algunos autores de complementos ya lo han implementado
6) Por defecto, m2e contiene los metadatos de mapeo del ciclo de vida para la mayoría de los complementos de uso común, como el complemento compilador maven y muchos otros.
Ahora volvamos a la pregunta: probablemente pueda proporcionar una asignación de ignorar el ciclo de vida en 1, 2 o 3 para ese objetivo específico que le está creando problemas.
fuente
Una buena solución para recordarle que m2e podría configurarse mejor, sin que el proyecto herede un marcador de error falso positivo, es 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
fuente
Traté de ejecutar una conexión específica justo después de la limpieza, es decir, después de la limpieza (el valor predeterminado es la fase de limpieza). Esto funcionó para mí con eclipse indigo. Recién agregado después de la limpieza resolvió el problema para mí.
fuente
phase
y unagoal
para elexecution
pom.xml que me dieron, y todavía recibo el error.Pude resolver el mismo problema con maven-antrun-plugin y jaxb2-maven-plugin en Eclipse Kepler 4.3 aplicando 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:
* Tuve que reiniciar Eclipse para ver los errores desaparecidos.
fuente
A partir de Maven Eclipse (m2e) versión 0.12, todos los objetivos del ciclo de vida de Maven deben correlacionarse con una extensión m2e instalada. En este caso,
maven-ear-plugin
tenía un objetivo sin asignardefault-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
Quick Fix
->Ignore for every pom with such errors
.Debe tener cuidado al ignorar los objetivos del ciclo de vida: por lo general, los objetivos hacen algo útil y si los configura para que se ignoren en Eclipse, puede perder pasos importantes de compilación. También es posible que desee considerar agregar soporte a la extensión EAR de Eclipse de Maven para el objetivo del ciclo de vida no asignado.
fuente
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.
Básicamente, el error nos obligó a decidir qué mecanismo se encarga de generar application.xml cuando la compilación de Maven se ejecuta dentro de Eclipse bajo el control del complemento m2e. Y hemos decidido que m2e está a cargo.
fuente
Debe comprender el contenido en M2E_plugin_execution_not_covered y seguir los pasos mencionados a continuación:
<ignore/>
inferiores<action>
.por ejemplo: para error de propiedades de proyecto de escritura, agregue este fragmento en la
<pluginExecutions>
sección del archivo lifecycle-mapping-metadata.xml:No debería ver errores en el futuro para ningún proyecto.
fuente
Aunque la pregunta es demasiado antigua, me gustaría compartir la solución que funcionó para mí porque ya verifiqué todo cuando se trata de este error. Fue un dolor, pasé dos días intentándolo y al final la solución fue:
actualizar el complemento M2e en eclipse
limpiar y construir de nuevo
fuente