您的位置:首页 > Web前端

在POM配置Maven plugin提示错误“Plugin execution not covered by lifecycle configuration”的解决方案

2016-12-21 20:27 531 查看
eclipse在其POM文件的一处提示出错如下:

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

 

这表示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包中解压出来并放置到前图所示的路径下

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

 


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

类似问题的解决办法:

导入Myabtis源码后,POM文件会报出如下异常:

Plugin execution not covered by lifecycle configuration org.sonatype.plugins:jarjar-maven-plugin

Plugin execution not covered by lifecycle configuration org.apache.felix:maven-bundle-plugin

在这里找到了问题的原因和解决办法:

http://wiki.eclipse.org/M2E_plugin_execution_not_covered

m2e在eclipse中执行maven生命周期构建,配置完毕后执行Maven构建后的项目。这是被多个不同Maven目标控制的。有些目标在workspace层面控制,有些在project/.setting下控制。

但是在特殊情况下还是会有异常。主要原因有2个:1、workspace外部的资源修改了,使得Maven插件构建workspace出现异常。2、在不同的JVM和系统下,maven插件可能会导致内存泄露。

为了解决这些长期存在的问题,m2e插件需要知道每个Maven插件的生命周期。这就需要用到"project build lifecycle mapping" 或者 "lifecycle mapping"。

由于Mybatis的牛人们都不用m2e插件,而是自己用指令控制Maven操作。所以有些插件对于m2e来说是没有用到的。现在只需要告诉m2e插件忽略检查这些插件的生命周期就好。

在文章的结尾我也找到了解决办法:

Window-Perferences-Maven-Lifecycle Mapping

点击Open workspace lifecycle mappings metadata。加入如下内容:

<lifecycleMappingMetadata>
<pluginExecutions>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.sonatype.plugins</groupId>
<artifactId>jarjar-maven-plugin</artifactId>
<versionRange>[1.7,)</versionRange>
<goals>
<goal>jarjar</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore />
</action>
</pluginExecution>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<versionRange>[2.3.7,)</versionRange>
<goals>
<goal>manifest</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore />
</action>
</pluginExecution>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<versionRange>[1.0.0,)</versionRange>
<goals>
<goal>enforce</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore />
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
将上面的文件保存到location地址下  重新update maven
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐