我现在正在尝试在完成其先决条件后使用mvn构建hadoop。 但是,即使我有正确版本的protoc,我也会收到此消息。 我已经尝试多次重建protoc 2.5.0并且每次都会通过它的所有测试并成功构建。我不知道为什么会这样,请帮忙。谢谢。
[错误]无法执行目标 org.apache.hadoop:Hadoop的Maven的插件:3.0.0-快照:protoc (compile-protoc)项目hadoop-common:
进行构建org.apache.maven.plugin.MojoExecutionException
:protoc失败 - &gt; [Help 1] [ERROR] [ERROR]要查看错误的完整堆栈跟踪, 用-e开关重新运行Maven。 [错误]使用-X重新运行Maven 切换以启用完整的调试日志记录[错误] [错误]了解更多 有关错误和可能的解决方案的信息,请阅读 以下文章:[错误] [帮助1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException [错误] [错误]纠正问题后,您可以恢复 使用命令[ERROR]mvn <goals> -rf :hadoop-common
TJ @ DESKTOP-6940Q5M / cygdrive / e / hdc
$ protoc --version
libprotoc 2.5.0
感谢您在使用-e开关重新运行时错过上传显示的建议。在这里。
无法执行目标org.apache.hadoop:hadoop-maven-plugins:3.0.0-SNAPSHOT:项目上的protoc(compile-protoc)hadoop-common:org.apache.maven.plugin.MojoExecutionException:protoc failure - &GT; [帮助1] org.apache.maven.lifecycle.LifecycleExecutionException:无法在项目hadoop-common:org.apache.maven上执行目标org.apache.hadoop:hadoop-maven-plugins:3.0.0-SNAPSHOT:protoc(compile-protoc)。 plugin.MojoExecutionException:protoc失败 在org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:212) 在org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) 在org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145) 在org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116) 在org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80) 在org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51) 在org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128) 在org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307) 在org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193) 在org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106) 在org.apache.maven.cli.MavenCli.execute(MavenCli.java:863) 在org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288) 在org.apache.maven.cli.MavenCli.main(MavenCli.java:199) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在java.lang.reflect.Method.invoke(Method.java:497) 在org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289) 在org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229) 在org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415) 在org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356) 引起:org.apache.maven.plugin.MojoExecutionException:org.apache.maven.plugin.MojoExecutionException:protoc failure 在org.apache.hadoop.maven.plugin.protoc.ProtocMojo.execute(ProtocMojo.java:105) 在org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134) 在org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207) ......还有20个 引起:org.apache.maven.plugin.MojoExecutionException:protoc失败 在org.apache.hadoop.maven.plugin.protoc.ProtocMojo.execute(ProtocMojo.java:102) ......还有22个
我真的不知道它的问题是什么,因为我是hadoop的首发。 请帮忙。
答案 0 :(得分:2)
当出现错误时,hadoop maven protobuf编译器很遗憾无用。
这可能只是.protoc
文件中的一些错误,而这些错误没有被报告,而mvn只是失败而没有显示根本原因。
我最终使用protoc命令行工具调试编译问题。
答案 1 :(得分:0)
似乎您需要安装protobuf-compiler
。然后构建hadoop-maven-plugins。返回hadoop源代码父目录并执行maven目标
cd <hadoop_source_path>
sudo yum install protobuf-compiler
cd hadoop-maven-plugins
mvn install
cd ..
mvn package -skipTests
这对我有用。