java - 将多个 Apache Beam 管道打包到一个 jar 文件中
问题描述
我正在开发一个项目,其中包含许多用 Java 编写的 Beam 管道,这些管道需要打包为 jar 文件,以便从我们的作业调度程序执行。我尝试使用构建配置文件为每个主创建一个 jar,但这看起来很混乱,而且我遇到了依赖冲突问题(使用 beam-sdks-java-io-amazon-web-services 时,它仍然在寻找对于所需的区域选项)。我也只是在为不断增长的 Beam 代码库寻找整体可持续的项目结构建议。
按计划执行打包管道的最佳实践是什么?我是否应该将多个管道打包在一起,以便我可以使用管道名称和管道选项参数执行每个管道,如果是,如何?(可能使用某种基于输入参数执行管道的主运行器 main)或者每个管道应该是它自己的 Maven 项目(这需要很多 jars)?想法?
解决方案
我不认为有解决这个问题的推荐方法。每种方式都有优点和缺点(例如,考虑更新管道的工作量)。
如果它适合你,我认为常见的 jar 解决方案很好。例如,同一个包中有多个Beam 示例管道,您可以通过指定 main class 来运行它们。它类似于您要实现的目标。
是否需要主主也取决于您的项目和环境的具体情况。无需额外的管理代码,只需使用java -cp mainclass
和绕过就足够了。
推荐阅读
- python - 形状不匹配 Python
- php - Laravel - 成功登录后将用户重定向到上一页
- c# - 如何格式化汉字以使其适合列?
- excel - 根据当前单元格为上一个单元格着色
- android - SMS 检索器 api 在发布版本中不会自动从 SMS 中读取 OTP
- python - 如何在 seaborn 的“山脊图”处将单位添加到轴标签
- azure - Azure Bot 服务示例 AuthenticationBot 登录卡不起作用 (application/vnd.microsoft.card.oauth)
- php - Sphinx:具有某些字符的 PDO 异常
- python - 无法运行exe文件?
- javascript - 如何检测图像是否可见?