1

我想在 Eclipse 中使用直接运行程序运行我的管道,并在我的 DoFn 函数和调试执行中放置一个断点。我尝试通过以下步骤设置直接跑步者:

  1. 添加直接runner maven包在此处输入图像描述
  2. 在 pom.xml 中为直接运行器设置 maven 配置文件。我的 pom.xml 有这个配置文件

<profiles> <profile> <id>direct-runner</id> <activation> <activeByDefault>true</activeByDefault> </activation> <dependencies> <dependency> <groupId>org.apache.beam</groupId> <artifactId>beam-runners-direct-java</artifactId> <version>0.2.0-incubating</version> </dependency> </dependencies> </profile> </profiles>

  1. 我在 pom.xml 的插件管理下有这个maven 插件

<pluginManagement> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId> <version>1.4.0</version> <executions> <execution> <goals> <goal>java</goal> </goals> </execution> </executions> <configuration> <cleanupDaemonThreads>false</cleanupDaemonThreads> <mainClass>com.MyMainClass</mainClass> </configuration> </plugin> </plugins> </pluginManagement>

  1. 下面是我的 Eclipse 调试配置的屏幕截图在此处输入图像描述 当我使用上述调试配置作业在 GCP 数据流而不是本地 JVM 线程中运行时,我的断点永远不会被命中。
4

1 回答 1

0

可能是您在测试方法中创建管道的方式。尝试像这样使用 TestPipeline util 类创建管道

public TestPipeline p = TestPipeline.create();
于 2017-06-14T04:46:02.747 回答