分享

hbase、hadoop通过eclipse m2e maven插件获取源码产生execution错误解决方案

本帖最后由 pig2 于 2014-7-6 19:20 编辑
问题导读:
1.使用eclipse maven插件下载源码,pom.xml不能识别goal的原因是什么?
2.产生Plugin execution not covered by lifecycle configuration该如何解决?
3.pluginManagement标签的作用是什么?






Plugin execution not covered by lifecycle configuration: org.apache.maven.plugins:maven-dependency-plugin:2.8:build-classpath
(execution: create-mrapp-generated-classpath, phase: generate-test-resources)

hadoop、hbase.png


产生错误的原因:
基于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)

解决办法:
以hbase-thrift为例,修改前
hbase-thrift.png


cuowu.png



切换pom.xml如下错误
  1. Plugin execution not covered by lifecycle configuration: org.apache.maven.plugins:maven-dependency-plugin:2.8:build-classpath
  2. (execution: create-mrapp-generated-classpath, phase: generate-test-resources)
复制代码


pomcuow.png


修改前出错位置
  1.   <plugins>
  2.           <plugin>
  3.             <artifactId>maven-dependency-plugin</artifactId>
  4.             <executions>
  5.               <execution>
  6.                 <id>create-mrapp-generated-classpath</id>
  7.                 <phase>generate-test-resources</phase>
  8.                 <goals>
  9.                   <goal>build-classpath</goal>
  10.                 </goals>
  11.                 <configuration>
  12.                   <!-- needed to run the unit test for DS to generate
  13.                   the required classpath that is required in the env
  14.                   of the launch container in the mini mr/yarn cluster
  15.                   -->
  16.                   <outputFile>${project.build.directory}/test-classes/mrapp-generated-classpath</outputFile>
  17.                 </configuration>
  18.               </execution>
  19.             </executions>
  20.           </plugin>
  21.         </plugins>
复制代码

修改后:
        <pluginManagement>
                                        <plugins>
                                                <plugin>
                                                        <artifactId>maven-dependency-plugin</artifactId>
                                                        <executions>
                                                                <execution>
                                                                        <id>create-mrapp-generated-classpath</id>
                                                                        <phase>generate-test-resources</phase>
                                                                        <goals>
                                                                                <goal>build-classpath</goal>
                                                                        </goals>
                                                                        <configuration>
                                                                                <!-- needed to run the unit test for DS to generate the required
                                                                                        classpath that is required in the env of the launch container in the mini
                                                                                        mr/yarn cluster -->
                                                                                <outputFile>${project.build.directory}/test-classes/mrapp-generated-classpath</outputFile>
                                                                        </configuration>
                                                                </execution>
                                                        </executions>
                                                </plugin>
                                        </plugins>
                                </pluginManagement>

加上pluginManagement标签后:

xiugaihou.png






hbase-shell为例:
这里以hbase的为例:
修改前:
<plugins>
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>create-mrapp-generated-classpath</id>
<phase>generate-test-resources</phase>
<goals>
<goal>build-classpath</goal>
</goals>
<configuration>
<!-- needed to run the unit test for DS to generate the required
classpath that is required in the env of the launch container in the mini
mr/yarn cluster -->
<outputFile>${project.build.directory}/test-classes/mrapp-generated-classpath</outputFile>
</configuration>
</execution>
</executions>
</plugin>
</plugins>



修改后:
<pluginManagement>
                                        <plugins>
                                                <plugin>
                                                        <artifactId>maven-dependency-plugin</artifactId>
                                                        <executions>
                                                                <execution>
                                                                        <id>create-mrapp-generated-classpath</id>
                                                                        <phase>generate-test-resources</phase>
                                                                        <goals>
                                                                                <goal>build-classpath</goal>
                                                                        </goals>
                                                                        <configuration>
                                                                                <!-- needed to run the unit test for DS to generate the required
                                                                                        classpath that is required in the env of the launch container in the mini
                                                                                        mr/yarn cluster -->
                                                                                <outputFile>${project.build.directory}/test-classes/mrapp-generated-classpath</outputFile>
                                                                        </configuration>
                                                                </execution>
                                                        </executions>
                                                </plugin>
                                        </plugins>
                                </pluginManagement>

参考:http://www.aboutyun.com/blog-21-330.html

已有(1)人评论

跳转到指定楼层
skyone5 发表于 2015-11-16 11:46:59
回复

使用道具 举报

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

本版积分规则

关闭

推荐上一条 /2 下一条