我可以在这里运行 Harness 示例
但我将代码复制到另一个目录并在中使用相同的依赖项pom.xml
,它引发了错误no routers defined
我调试并发现未找到MyModule
which extends 。StateFunModule
因此,类加载器没有模块,路由器和函数大小为 0,并且在验证步骤中失败。(检查入口、出口、路由器、函数大小不为 0 的步骤)
PS:我只是复制了所有代码,因此@AutoService
也包括在内。根据这里,它应该无需进一步配置即可工作。
更新:似乎它的 statefun 问题与@AutoService
我在另一个项目的 pom 中添加了以下代码(与 statefun 无关)
<dependency>
<groupId>com.google.auto.service</groupId>
<artifactId>auto-service</artifactId>
<version>1.0-rc6</version>
<optional>true</optional>
</dependency>
它起作用了,生成了 META-INF。
但是如果使用
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>statefun-flink-distribution</artifactId>
<version>2.2-SNAPSHOT</version>
</dependency>
没有生成META-INF,我在statefun中发现,使用的依赖其实是
<dependency>
<groupId>com.google.auto.service</groupId>
<artifactId>auto-service</artifactId>
<version>1.0-rc6</version>
<optional>true</optional>
</dependency>
我测试了这个依赖,它无法生成 META-INF,我很好奇为什么如果我们直接克隆 statefun repo 并且mvn clean package
它可以工作。