一. 問題 二. 產生問題原因 基於maven的項目,使用各種maven plugin來完成開發中的各種工作,例如編譯代碼,打包,部署等等… 每個plugin包含許多的goal,用來做特定的事情。典型的基於java的maven項目就有 clean compile test package deplo ...
一. 問題
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要乾什麼,那麼通常就會看到如下的錯誤信息:
- Plugin execution not covered by lifecycle configuration:
- 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要乾什麼,那麼通常就會看到如下的錯誤信息:
- Plugin execution not covered by lifecycle configuration:
- 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中