Maven項目POM文件錯誤,提示“Plugin execution not covered by lifecycle configuration”的解決方案


一. 問題

 

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中


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM