Eclipse:发生内部错误:“更新层次结构”

Eclipse: An internal error occurred during: “Update Hierarchy”

在尝试 运行 此处引用的 Google eclipse 中的云数据流 Wordcount 示例时 https://cloud.google.com/dataflow/docs/quickstarts/quickstart-java-eclipse

我收到以下错误:

发生内部错误:"Update Hierarchy"。 尝试为 Java 项目 'my project name' 创建 TypeHierarchyPipelineOptionsHierarchy,其中不存在 PipelineOptions 类型

根据以下 Whosebug link:

其他人也遇到了这个问题

我尝试了上面的解决方案,项目编译了,但它没有 运行 即使在强制更新 Snapshots/Releases 之后,如上所述。

根据我对问题的研究,google-cloud-dataflow-java-sdk-all-2.0.0-beta1.jar 似乎没有 PipelineRunner class,这是导致错误的原因。同一个 jar 的 1.9.0 版本有那些 classes。 我不能直接使用 1.9.0 版本的 jar,因为它会导致其他编译错误,例如包更改为 'org.apache.beam' 而不是 'com.google.cloud.dataflow'

确实,旧版本的 Google Eclipse Cloud Dataflow 插件存在一个问题——旧版本没有 forward-compatible Dataflow SDKs 2.x 系列,但是项目生成可能仍会使用最新的 2.x SDK 自动创建项目。

解决该问题,请升级插件到最新版本

使用 Eclipse 数据流插件 1.1.2 版和更早版本生成的项目将使用最新的原型生成项目。随着 Dataflow 2.0.0-beta1 的发布,生成的项目将使用 Apache Beam SDK 作为底层依赖。将项目版本修改为 1.9.0 或更早版本不会修改生成的代码,这会导致您遇到的编译失败。

1.1.3 版插件将确保任何生成的项目都保留在 Dataflow 命名空间内。未来的版本也将 forwards-compatibly 与 Apache Beam 一起使用。版本 1.1.3 应该可用 - 在 Eclipse 中,转到 Help -> Check for Updates(可能 运行 Perform Setup Tasks 以清除缓存的当前版本)应该使更新的插件可用。

我们发布了 Eclipse 数据流插件 1.1.3 版;快速入门示例现在应该可以运行了。在 Eclipse 数据流插件的未来版本发布之前,您生成的项目将无法运行。更新插件和 re-running 快速入门应该会成功。