我的公司使用SBT/Scala,所以我的目標是用這些開發我們自定義的NiFi處理器而不是Maven/Java。我遇到的問題是我不知道如何使用SBT生成NAR文件。 NiFi有一個nifi-nar-maven-plugin包插件,用於將所有處理器依賴關係打包成jar(nar)。無論如何要用SBT構建NAR?我可以使用另一個構建系統來構建帶有NiFi的定製處理器嗎?
選項,我認爲:
- 建設脂肪罐子(例如: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。