【发布时间】:2022-01-19 20:44:46
【问题描述】:
我的公司使用 SBT/Scala,所以我的目标是使用这些而不是 Maven/Java 开发我们的定制 NiFi 处理器。我遇到的问题是我不知道如何使用 SBT 生成 NAR 文件。 NiFi 有一个 nifi-nar-maven-plugin 包插件,用于将所有处理器依赖项打包到一个 jar (nar) 中。有没有使用 SBT 构建 NAR?
我考虑过的选项:
- 构建一个胖罐(例如:https://github.com/sbt/sbt-assembly)。我在 NAR 中看到了 pom 文件,但这些文件实际上用于任何用途还是只是元数据?我看到了像 NarUnpacker、NarClassLoader 这样的类,所以我想知道 Nar 格式中是否有特定的东西会阻止 Fat jars 工作。
- 对插件进行逆向工程并创建一个 SBT 插件。可能需要做一些工作,然后我们就有可能与原始插件的更改不同步。
- 围绕 SBT 的 maven 插件构建一个包装器。不过,我认为这不会起作用,因为该插件是基于 Maven 库构建的。
- 只保留 NiFi 子项目作为 maven 构建并通过 SBT 父项目运行它。 (例如http://www.scala-sbt.org/0.13/docs/Process.html)
- 放弃并说服管理层使用 maven。
【问题讨论】: