eclipse - run - maven-dependency-plugin(objetivos "copiar-dependencias", "desempaquetar") no es compatible con m2e
maven para eclipse oxygen (8)
Tengo un proyecto Maven bastante simple:
<project>
<dependencies>
...
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.4</version>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/dependencies</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
Sin embargo, obtengo el siguiente error en m2eclipse:
Description Resource Path Location Type
maven-dependency-plugin (goals "copy-dependencies", "unpack") is not supported by m2e. pom.xml /jasperreports-test line 60 Maven Project Build Lifecycle Mapping Problem
¿Por qué me importa si m2eclipse no "admite" esta tarea? Maven lo hace, y eso es todo lo que realmente me importa. ¿Cómo puedo obtener este error en mi proyecto para irme?
A pesar de la respuesta de CaioToOn anterior, todavía tenía problemas para hacer que esto funcione inicialmente.
Después de múltiples intentos, finalmente funcionó. Estoy pegando mi versión final aquí - esperando que beneficie a alguien más.
<build>
<plugins>
<!--
Copy all Maven Dependencies (-MD) into libMD/ folder to use in classpath via shellscript
-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.8</version>
<executions>
<execution>
<id>copy</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/libMD</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
<!--
Above maven-dependepcy-plugin gives a validation error in m2e.
To fix that, add the plugin management step below. Per: http://.com/a/12109018
-->
<pluginManagement>
<plugins>
<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-dependency-plugin</artifactId>
<versionRange>[2.0,)</versionRange>
<goals>
<goal>copy-dependencies</goal>
</goals>
</pluginExecutionFilter>
<action>
<execute />
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
Este es un problema de M2E para la ejecución del complemento Eclipse M2E no cubierto .
Para resolver este problema, todo lo que tiene que hacer es mapear el ciclo de vida que no reconoce e instruir a M2E para que lo ejecute.
Debe agregar esto después de sus plugins
, dentro de la build
. Esto eliminará el error y hará que M2E reconozca las copy-depencies
de copy-depencies
de maven-dependency-plugin
y hará que el POM funcione como se espera, copiando dependencias en la carpeta cada vez que Eclipse lo construya. Si solo quiere ignorar el error, entonces cambie <execute />
por <ignore />
. No es necesario incluir su maven-dependency-plugin
en pluginManagement
, como se sugirió anteriormente.
<pluginManagement>
<plugins>
<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-dependency-plugin</artifactId>
<versionRange>[2.0,)</versionRange>
<goals>
<goal>copy-dependencies</goal>
</goals>
</pluginExecutionFilter>
<action>
<execute />
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
</plugins>
</pluginManagement>
Otra opción es navegar a la pestaña de problemas, hacer clic con el botón derecho sobre el error, hacer clic en Aplicar solución rápida. Debe generar el código ignorar xml y aplicarlo .pom para usted.
Para que funcione, en lugar de ignorarlo, puede instalar el conector m2e para maven-dependency-plugin:
https://github.com/ianbrandt/m2e-maven-dependency-plugin
Así es como lo harías en Eclipse:
- ve a Ventana / Preferencias / Maven / Discovery /
- ingrese la URL del catálogo: http://download.eclipse.org/technology/m2e/discovery/directory-1.4.xml
- haga clic en Abrir catálogo
- elija el plugin m2e-maven-dependency-plugin
- disfrutar
Parece ser un problema conocido. Puede indicar a m2e que ignore esto.
Opción 1: pom.xml
Agregue lo siguiente dentro de su etiqueta <build/>
:
<pluginManagement>
<plugins>
<!-- Ignore/Execute plugin execution -->
<plugin>
<groupId>org.eclipse.m2e</groupId>
<artifactId>lifecycle-mapping</artifactId>
<version>1.0.0</version>
<configuration>
<lifecycleMappingMetadata>
<pluginExecutions>
<!-- copy-dependency plugin -->
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<versionRange>[1.0.0,)</versionRange>
<goals>
<goal>copy-dependencies</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore />
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
</plugins></pluginManagement>
Tendrá que hacer Maven ... -> Actualizar la configuración del proyecto en su proyecto después de esto.
Leer más: http://wiki.eclipse.org/M2E_plugin_execution_not_covered#m2e_maven_plugin_coverage_status
Opción 2: Anulación global de Eclipse
Para evitar cambiar sus archivos POM, la anulación de ignorar se puede aplicar a todo el espacio de trabajo a través de la configuración de Eclipse.
Guarde este archivo en algún lugar del disco: https://gist.github.com/maksimov/8906462
En Eclipse/Preferences/Maven/Lifecycle Mappings
busque este archivo y haga clic en Aceptar:
Sé que esta es una publicación anterior, pero hoy tuve problemas también con este problema y utilicé la plantilla de esta página: http://maven.apache.org/plugins/maven-dependency-plugin/usage.html
<project>
[...]
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.7</version>
<executions>
<execution>
<id>copy</id>
<phase>package</phase>
<goals>
<goal>copy</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>[ groupId ]</groupId>
<artifactId>[ artifactId ]</artifactId>
<version>[ version ]</version>
<type>[ packaging ]</type>
<classifier> [classifier - optional] </classifier>
<overWrite>[ true or false ]</overWrite>
<outputDirectory>[ output directory ]</outputDirectory>
<destFileName>[ filename ]</destFileName>
</artifactItem>
</artifactItems>
<!-- other configurations here -->
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
[...]
</project>
y todo funciona bien bajo m2e
1.3.1.
Cuando intenté usar
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.4</version>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/dependencies</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
También tengo el error m2e
.
Si las dependencias de copia, desempaquetar, empacar, etc. son importantes para su proyecto, no debe ignorarlo. <pluginManagement>
encerrar sus <plugins>
en <pluginManagement>
probados con Eclipse Indigo SR1, maven 2.2.1
Tuve el mismo problema al intentar cargar el proyecto de Hadoop en eclipse. Probé las soluciones anteriores, y creo que podría haber funcionado en Eclipse Kepler ... ni siquiera estoy seguro (intenté muchas cosas).
Con todos los problemas que tenía, decidí pasar a Eclipse Luna, y las soluciones anteriores no funcionaron para mí.
Hubo otra publicación que recomendaba cambiar la ... etiqueta al paquete. Empecé a hacer eso, y eso "borraba" los errores ... Sin embargo, empiezo a pensar que los cambios me afectarían más tarde, no soy un experto en Maven.
Afortunadamente, descubrí cómo eliminar todos los errores. Vaya a Ventana-> Preferencias-> Prevenir-> Error / Advertencias y cambie la opción "Ejecución de plugin no cubierto por el ciclo de vida ..." a "Ignorar". Espero eso ayude.