導入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>