运行WordCount示例的GCP数据流快速入门错误:未知生命周期阶段“ .mainClass = org.apache.beam.examples.WordCount”

时间:2019-11-17 05:06:58

标签: java maven google-cloud-dataflow apache-beam

我正在尝试从此处https://cloud.google.com/dataflow/docs/quickstarts/quickstart-java-maven进行GCP Cloud Dataflow的“使用Java快速入门”,并且在“在本地运行WordCount”步骤中遇到错误。

在PowerShell提示符下运行

PS C:\apache-maven-3.6.2\word-count-beam> mvn compile exec:java -Dexec.mainClass=org.apache.beam.examples.WordCount -Dexec.args="--output=.\output\"

我收到带有以下内容的BUILD FAILURE消息:

  

[错误]未知的生命周期阶段“ .mainClass = org.apache.beam.examples.WordCount”。您必须以:或:[:]:格式指定有效的生命周期阶段或目标。可用的生命周期阶段包括:验证,初始化,生成源,流程源,生成资源,流程资源,编译,流程类,生成测试源,流程测试源,生成测试资源,流程测试资源,测试编译,过程测试类,测试,准备打包,打包,集成前测试,集成测试,集成后测试,验证,安装,部署,预清洁,清洁,清理后,站点前,站点,站点后,站点部署。 -> [帮助1]

当我添加-e时,我还将获得堆栈跟踪:

  在org.apache.maven.lifecycle.internal.DefaultLifecycleExecutionPlanCalculator.calculateLifecycleMappings中的

(DefaultLifecycleExecutionPlanCalculator.java:248)       在org.apache.maven.lifecycle.internal.DefaultLifecycleExecutionPlanCalculator.calculateMojoExecutions(DefaultLifecycleExecutionPlanCalculator.java:217)       在org.apache.maven.lifecycle.internal.DefaultLifecycleExecutionPlanCalculator.calculateExecutionPlan(DefaultLifecycleExecutionPlanCalculator.java:126)处       在org.apache.maven.lifecycle.internal.DefaultLifecycleExecutionPlanCalculator.calculateExecutionPlan(DefaultLifecycleExecutionPlanCalculator.java:144)       在org.apache.maven.lifecycle.internal.builder.BuilderCommon.resolveBuildPlan(BuilderCommon.java:97)       在org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:111)       在org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:81)       在org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:56)       在org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)       在org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:305)       在org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:192)       在org.apache.maven.DefaultMaven.execute(DefaultMaven.java:105)       在org.apache.maven.cli.MavenCli.execute(MavenCli.java:956)       在org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288)       在org.apache.maven.cli.MavenCli.main(MavenCli.java:192)       在jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处       在jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)       在jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)       在java.lang.reflect.Method.invoke(Method.java:567)       在org.codehaus.plexus.classworlds.launcher.Launcher.launch增强(Launcher.java:282)       在org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:225)       在org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:406)       在org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:347)

我正在使用jdk-13.0.1和maven 3.6.2,并已设置JAVA_HOME并将JAVA_HOME \ Bin和Maven添加到了我的PATH。

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

我看到您正在使用,而JDK-13.0.1当前支持Apache Beam。以下是Java和Maven的先决条件。

  1. 下载并安装Java开发工具包(JDK)版本8。验证是否已设置JAVA_HOME环境变量并指向您的JDK安装。
  2. 按照适用于您特定操作系统的Maven安装指南,下载并安装Apache Maven。

完成Java和Maven的安装后,您可以使用以下命令获取代码

Java 8

要在本地运行代码

mvn archetype:generate \
      -DarchetypeGroupId=org.apache.beam \
      -DarchetypeArtifactId=beam-sdks-java-maven-archetypes-examples \
      -DarchetypeVersion=2.16.0 \
      -DgroupId=org.example \
      -DartifactId=word-count-beam \
      -Dversion="0.1" \
      -Dpackage=org.apache.beam.examples \
      -DinteractiveMode=false

答案 1 :(得分:0)

如果您使用的是 powershell,则使用“-D exec.mainClass”代替“-Dexec.mainClass”