将多个Apache Beam管道打包在一个jar文件中

时间:2019-01-04 16:08:29

标签: java maven executable-jar apache-beam

我正在开发一个项目,其中有许多用Java编写的Beam管道,需要将其打包为jar文件,以便从我们的工作计划程序中执行。我试图使用构建配置文件为每个主要对象创建一个jar,但这似乎很杂乱,而且我遇到了依赖冲突的问题(使用beam-sdks-java-io-amazon-web-services而不使用它的外观以获取所需的区域选项)。我还只是在为不断增长的Beam代码库寻求总体可持续的项目结构建议。

按计划执行打包管道的最佳实践是什么?我应该将多个管道打包在一起,以便可以使用管道名称和管道选项参数执行每个管道吗? (可能使用某种基于输入参数执行管道的主运行器主管道)还是每个管道都应该是其自己的Maven项目(这需要很多jar)?有想法吗?

1 个答案:

答案 0 :(得分:0)

我认为没有解决此问题的推荐方法。每种方式都有其优点和缺点(例如,考虑更新管道的工作)。

我认为常见的jar解决方案如果对您有用,则很好。例如,同一包中有多个Beam example pipelines,而您run them by specifying the main class。它与您要实现的目标相似。

您是否需要主电源也取决于项目和环境的细节。只需use java -cp mainclass并不需要额外的管理代码就可以解决问题。