首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >m2e不支持maven-dependency-plugin (目标为“复制依赖项”、“解包”)

m2e不支持maven-dependency-plugin (目标为“复制依赖项”、“解包”)
EN

Stack Overflow用户
提问于 2012-01-03 06:34:49
回答 6查看 132.6K关注 0票数 156

我有一个相当简单的Maven项目:

代码语言:javascript
复制
<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中得到以下错误:

代码语言:javascript
复制
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做到了,这才是我真正关心的。我怎样才能消除项目中的这个错误呢?

EN

回答 6

Stack Overflow用户

发布于 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中。

代码语言:javascript
复制
<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>
票数 58
EN

Stack Overflow用户

发布于 2012-04-18 19:53:20

如果拷贝依赖、解包、打包等对你的项目很重要,你不应该忽略它。您必须将您的<plugins>封装在使用Eclipse Indigo SR1,maven 2.2.1测试的<pluginManagement>

票数 38
EN

Stack Overflow用户

发布于 2013-07-19 01:08:28

尽管上面的CaioToOn给出了答案,但我仍然在最初的工作中遇到了问题。

经过多次尝试,终于让它正常工作了。我在这里粘贴我的最终版本-希望它能让其他人受益。

代码语言:javascript
复制
    <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>
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8706017

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档