Apache Beam 字数统计:转换为 Gradle (Groovy)

Apache Beam Word Count: Convert to Gradle (Groovy)

我正在使用 Apache Beam 的快速入门指南:
https://beam.apache.org/get-started/quickstart-java

我想用 gradle 创建一个最小的设置,并想用 Direct Runner 测试它。
当我 运行 指南中提到的这个命令时:

gradle clean execute -DmainClass=main.Main --args="--inputFile=sample.txt --output=counts"

Gradle 失败并出现以下错误:

FAILURE: Build failed with an exception.

* What went wrong:
Task 'execute' not found in root project 'apache-beam-hello-world'.

所以我想我缺少 build.gradle、
中的一些设置 我再次阅读指南,发现这些代码可能相关:

task("execute", JavaExec::class) {
    classpath = sourceSets["main"].runtimeClasspath
    mainClass.set(System.getProperty("mainClass"))
}

不过,上面的代码是用Kotlin写的,
所以我现在不知道该怎么办。

这是我现在的 build.gradle

plugins {
    id "java-library"
}

repositories {
    mavenCentral()
}

dependencies {
    implementation "org.apache.beam:beam-sdks-java-core:2.39.0"
    implementation "org.apache.beam:beam-runners-direct-java:2.39.0"
}

tasks.named("test") {
    useJUnitPlatform()
}


更新 (2022-05-29T18:47:00Z):

我可以 运行 Main class 并在我的 Eclipse IDE 上正常工作 IDE。

我找到了将相同内容从 Kotlin 重写为 Groovy 的方法,并且有效:

task execute(type: JavaExec) {
    mainClass = "main.Main"
    classpath = sourceSets.main.runtimeClasspath
}

此外,我们需要像这样添加存储库:

repositories {
    mavenCentral()
    maven { url "https://packages.confluent.io/maven/" }
}