Java自学者论坛

 找回密码
 立即注册

手机号码,快捷登录

恭喜Java自学者论坛(https://www.javazxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,会员资料板块,购买链接:点击进入购买VIP会员

JAVA高级面试进阶训练营视频教程

Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程Go语言视频零基础入门到精通Java架构师3期(课件+源码)
Java开发全终端实战租房项目视频教程SpringBoot2.X入门到高级使用教程大数据培训第六期全套视频教程深度学习(CNN RNN GAN)算法原理Java亿级流量电商系统视频教程
互联网架构师视频教程年薪50万Spark2.0从入门到精通年薪50万!人工智能学习路线教程年薪50万大数据入门到精通学习路线年薪50万机器学习入门到精通教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程MySQL入门到精通教程
查看: 315|回复: 0

Maven项目POM文件错误,提示“Plugin execution not covered by lifecycle configuration”的解决方案

[复制链接]
  • TA的每日心情
    奋斗
    2024-4-6 11:05
  • 签到天数: 748 天

    [LV.9]以坛为家II

    2034

    主题

    2092

    帖子

    70万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    705612
    发表于 2021-5-10 08:24:06 | 显示全部楼层 |阅读模式

    一. 问题

     

    Plugin execution not covered by lifecycle configuration: org.apache.maven.plugins:maven-dependency-plugin:2.10:copy (execution: copy, phase: test-compile)

    二. 产生问题原因

    基于maven的项目,使用各种maven plugin来完成开发中的各种工作,例如编译代码,打包,部署等等…

    每个plugin包含许多的goal,用来做特定的事情。典型的基于java的maven项目就有 clean compile test package

    deploy等goal要执行。除了这些比较常见的goal之外,项目中还可以使用大量的第三方的plugin,甚至自己动手开发的plugin。

    随之而来的问题是,在eclipse中编辑maven项目的时候,eclipse并不知道这些goal要做什么,通用的goal还好说,特殊用途的goal就没有办法了。所以m2eclipse这个集成maven到eclipse的plugin就提供了开发extra的能力,eclipse利用这些extra来完成本来在maven plugin要干的活。

    如果eclipse没有办法知道某个goal要干什么,那么通常就会看到如下的错误信息:

    1.  Plugin execution not covered by lifecycle configuration:
    2.  org.apache.maven.plugins:maven-dependency-plugin:2.6:copy (execution:default, phase: validate)

    三. 我的解决办法

    第一步:

    eclipse->preference->maven->lifecycle mappings中

    第二步:填入以下代码,保存。注意:<groupId>、<artifactId>、<goal>、<versionRange>标签的值要对应报错信息填写!

    <?xml version="1.0" encoding="UTF-8"?>
    <lifecycleMappingMetadata>
        <pluginExecutions>
            <pluginExecution>
                <pluginExecutionFilter>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-dependency-plugin</artifactId>
                    <goals>
                        <goal>copy</goal>
                    </goals>
                    <versionRange>[2.10,)</versionRange>
                </pluginExecutionFilter>
                <action>
                    <ignore />
                </action>
            </pluginExecution> 
        </pluginExecutions>
    </lifecycleMappingMetadata>

    第三步:

     

    点下ok。

    第四步:修改完成后,选中项目右键----Maven----Update Project... 问题解决!

     

     

    -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    参考如下博文:

    地址:https://blog.csdn.net/xyr05288/article/details/79569183

    一. 问题产生原因

    Plugin execution not covered by lifecycle configuration: org.apache.maven.plugins:maven-dependency-plugin:2.7:copy...

    在eclipse->preference->maven->lifecycle mappings中,myeclipse的话Maven4MyEclipse->Lifecycle mappings,想上面所示进行配置,保存更新project。未试过eclipse下情况如何,MyEclipse默认配置路径是没有lifecycle-mapping-metadata.xml这个文件的,只有<项目名>.lifecyclemapping一系列这样的文件,但提供一个按钮“Open workspacelifecycle mappings metadata”里进行编辑。或者Change mapping file location。

    好吧,这样也许是最应该的处理的方式,但让每个开发人员都改下ide配置,还不如直接改下pom.xml文件的配置,最终采用了修改pom.xml文件的方式。

    好吧,最终还是将出错原因和解决思路抄一下:

    基于maven的项目,使用各种maven plugin来完成开发中的各种工作,例如编译代码,打包,部署等等…

    每个plugin包含许多的goal,用来做特定的事情。典型的基于java的maven项目就有 clean compile test package

    deploy等goal要执行。除了这些比较常见的goal之外,项目中还可以使用大量的第三方的plugin,甚至自己动手开发的plugin。

    随之而来的问题是,在eclipse中编辑maven项目的时候,eclipse并不知道这些goal要做什么,通用的goal还好说,特殊用途的goal就没有办法了。所以m2eclipse这个集成maven到eclipse的plugin就提供了开发extra的能力,eclipse利用这些extra来完成本来在maven plugin要干的活。

    如果eclipse没有办法知道某个goal要干什么,那么通常就会看到如下的错误信息:

    1.  
      Plugin execution not covered by lifecycle configuration:
    2.  
      org.apache.maven.plugins:maven-dependency-plugin:2.6:copy (execution:default, phase: validate)

    由于我个人更倾向于在命令行下让maven干活,而eclipse更多的只是充当编辑器的角色,所以我要的只是让eclipse忽略掉这些goal就好了。

    参考这里http://wiki.eclipse.org/M2E_plugin_execution_not_covered 之后,要做的就是告诉eclipse要忽略的goal.

     

    二. 解决方案

     

    查阅各种资料,折腾好久,这表示m2e在其执行maven的生命周期管理时没有定义该插件,所以提示出错,其实m2e对此是提供了扩展机制的,我们可以通过如下操作来消除这个出错提示:

    1. 进入Window—>Preferences—>Maven配置,进入Lifecycle Mapping设置项,如下图:

     

    从上图可以看出m2e管理maven生命周期的文件名是lifecycle-mapping-metadata.xml,以及该文件的存放路径

    2. 下一步我们就要去相应路径修改lifecycle-mapping-metadata.xml文件,但会发现这个文件在上图中提示的位置并不存在,那么此时就

    以到eclipse的安装目录下的plugins下的org.eclipse.m2e.lifecyclemapping.defaults_xxxxxx.jar文件中找到该文件(如下图):

    解压后可以发现lifecycle-mapping-metadata.xml文件的确在jar包中

     

    把它从jar包中解压出来并放置到步骤1图中所示的路径下

    3. 打开lifecycle-mapping-metadata.xml文件,把未识别的插件在文件中加入即可:

    Plugin execution not covered by lifecycle configuration:org.apache.maven.plugins:maven-source-plugin:3.1:compile (execution: default-compile, phase: compile)

    由提示可知缺少的是org.apache.maven.plugins:maven-source-plugin 版本为3.1的插件,阶段是compile

         <pluginExecution>
          <pluginExecutionFilter>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-source-plugin</artifactId>
            <versionRange>[3.1,)</versionRange>
            <goals>
              <goal>testCompile</goal>
              <goal>compile</goal>
            </goals>
          </pluginExecutionFilter>
          <action>
            <ignore/>
          </action>
        </pluginExecution>

    4、修改完成后,需在m2e配置处把“Update Maven projects on startup”选项勾上,并重启eclipse即可消除出错提示。

    同理Plugin execution not covered by lifecycle configuration:org.codehaus.mojo:aspectj-maven-plugin:1.7:compile (execution: default-compile, phase: test-compile)

     

    后续出现Plugin execution not covered by lifecycle configuration:此类错误均可尝试此方式解决

    参考文献:http://www.cnblogs.com/hzhuxin/archive/2012/06/17/2552998.html

     

    三.特别说明

    其实eclipse提示有解决方法,前两个方法都可以的,第一个方法是把插件ignore的配置放到pom.xml中,第二个方法是把插件ignore的配置放到上述提到的lifecycle-mapping-metadata.xml中

    哎...今天够累的,签到来了1...
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|小黑屋|Java自学者论坛 ( 声明:本站文章及资料整理自互联网,用于Java自学者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2024-5-9 08:12 , Processed in 0.072966 second(s), 29 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表