我有一个相当简单的Maven项目:
<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>
但是,我在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
为什么我要关心m2eclipse是否“支持”这个任务?Maven做到了,这才是我真正关心的。我怎样才能消除项目中的这个错误呢?
发布于 2012-08-24 19:58:49
这是Eclipse M2E plugin execution not covered的M2E的一个问题。
要解决这个问题,您所要做的就是映射它无法识别的生命周期,并指示M2E执行它。
您应该将此代码添加到build
中的plugins
之后。这将消除错误,并使M2E识别maven-dependency-plugin
的目标copy-depencies
,并使其按预期工作,在每次maven-dependency-plugin
构建时将依赖项复制到文件夹。如果您只想忽略该错误,那么可以将<execute />
更改为<ignore />
。不需要像前面建议的那样将maven-dependency-plugin
封装到pluginManagement
中。
<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>
发布于 2012-04-18 19:53:20
如果拷贝依赖、解包、打包等对你的项目很重要,你不应该忽略它。您必须将您的<plugins>
封装在使用Eclipse Indigo SR1,maven 2.2.1测试的<pluginManagement>
中
发布于 2013-07-19 01:08:28
尽管上面的CaioToOn给出了答案,但我仍然在最初的工作中遇到了问题。
经过多次尝试,终于让它正常工作了。我在这里粘贴我的最终版本-希望它能让其他人受益。
<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://stackoverflow.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>
https://stackoverflow.com/questions/8706017
复制相似问题