Google FileSystemRefistrar 的数据流 jar 文件打包问题
Google Dataflow jar file packaging issue with FileSystemRefistrar
我在我的 IntelliJ 中测试我的数据流 java 应用程序,它工作得很好。但是当运行数据流jar文件在linux系统中时,出现了这个问题:
这是我用于数据流的选项:
--project=myproject --stagingLocation=gs://mybucket/staging2 --tempLocation=gs://mybucket/gcp-temp2 --gcpTempLocation=gs://mybucket/gcp-temp2 --bigtableProjectId=myinstance --bigtableInstanceId=user-test --bigtableTableId=test_table1
所以问题是gs目录没有被正确识别。事实上,它被认为是我 运行 我的 jar 文件所在的服务器的本地目录。
出现这个目录问题的原因如下:
我查找了 [maven assembly jar] 与 [maven shade jar] 之间的区别,发现 FileSystemRefistrar 指向了错误的文件。
但是使用 shade 插件不是解决问题的办法,我只是幸运的是 class 是 GcsFileSystemRegistrar 没有被覆盖。当我更改依赖顺序时,同样的问题再次出现。
为了完成这项工作,我必须按以下顺序拥有这两个库:
beam-runners-google-cloud-dataflow-java
beam-sdks-java-core
'beam-sdks-java-core'包含在'beam-runners-google-cloud-dataflow-java'中,但我需要在'beam-runners-google-cloud-dataflow-java'之后添加它。所以 dependencyHierarchy 看起来很有趣,但这是我让它工作的唯一方法。外观如下:
如果我排除'beam-sdks-java-core'或更改顺序,问题又会出现。我尝试使用 Maven 插件排除它,但它没有用。
所以我的问题是如何正确设置 FileSystemRegistrar?我不知道为什么会这样。
+我希望遇到此问题的人可以从本文中得到提示。我为此挣扎了很多:'(
正如 OGCheeze 评论的那样,通过将 maven shade 插件与 ServicesResourceTransformer 结合使用解决了这个问题。在
有更详细的解释。
我在我的 IntelliJ 中测试我的数据流 java 应用程序,它工作得很好。但是当运行数据流jar文件在linux系统中时,出现了这个问题:
这是我用于数据流的选项:
--project=myproject --stagingLocation=gs://mybucket/staging2 --tempLocation=gs://mybucket/gcp-temp2 --gcpTempLocation=gs://mybucket/gcp-temp2 --bigtableProjectId=myinstance --bigtableInstanceId=user-test --bigtableTableId=test_table1
所以问题是gs目录没有被正确识别。事实上,它被认为是我 运行 我的 jar 文件所在的服务器的本地目录。
出现这个目录问题的原因如下:
我查找了 [maven assembly jar] 与 [maven shade jar] 之间的区别,发现 FileSystemRefistrar 指向了错误的文件。
但是使用 shade 插件不是解决问题的办法,我只是幸运的是 class 是 GcsFileSystemRegistrar 没有被覆盖。当我更改依赖顺序时,同样的问题再次出现。
为了完成这项工作,我必须按以下顺序拥有这两个库:
beam-runners-google-cloud-dataflow-java
beam-sdks-java-core
'beam-sdks-java-core'包含在'beam-runners-google-cloud-dataflow-java'中,但我需要在'beam-runners-google-cloud-dataflow-java'之后添加它。所以 dependencyHierarchy 看起来很有趣,但这是我让它工作的唯一方法。外观如下:
如果我排除'beam-sdks-java-core'或更改顺序,问题又会出现。我尝试使用 Maven 插件排除它,但它没有用。
所以我的问题是如何正确设置 FileSystemRegistrar?我不知道为什么会这样。
+我希望遇到此问题的人可以从本文中得到提示。我为此挣扎了很多:'(
正如 OGCheeze 评论的那样,通过将 maven shade 插件与 ServicesResourceTransformer 结合使用解决了这个问题。在