首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Google文件打包问题与FileSystemRefistrar

Google文件打包问题与FileSystemRefistrar
EN

Stack Overflow用户
提问于 2018-03-21 03:41:13
回答 1查看 363关注 0票数 0

我在IntelliJ中测试了我的数据流java应用程序,它运行得非常好。但是,当在linux系统中运行数据流jar文件时,出现了以下问题:

这是我用于数据流的选项:--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程序集jar与maven树荫jar之间的区别,发现FileSystemRefistrar指向了错误的文件。

但是使用阴影插件并不能解决这个问题,我只是幸运的是,这个类是GcsFileSystemRegistrar没有被覆盖。当我更改依赖项顺序时,同样的问题再次发生。

要做到这一点,我必须将这两个库按以下顺序排列:

束流运行程序-google-cloud-dataflow java 光束-sdks java-核心

‘beam java-core’包含在‘波束运行-运行-谷歌-云-数据流-java’之后,但我需要在‘波束运行-运行-谷歌-云-数据流-java’之后添加它。所以dependencyHierarchy看起来很有趣,但这是我唯一能让它工作的方法。以下是它的外观:

如果我不包括“beam java-core”或更改顺序,问题就会再次发生。我试图排除它使用maven插件,但它没有工作。

因此,我的问题是如何正确设置FileSystemRegistrar?我不知道为什么会这样。

我希望任何有这个问题的人都能从这篇文章中得到一些提示。我从这件事中挣扎了很多:

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-04 15:57:21

正如OGCheeze所评论的,它是通过使用ServicesResourceTransformer的maven阴影插件来解决的。在this post中有更详细的解释。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49397775

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档