tonykoval / sbt-nifi-nar   0.4

Apache License 2.0 GitHub

A sbt plugin for creating NiFi Archive bundles to support the classloader isolation model of NiFi.

Scala versions: 2.12
sbt plugins: 1.0

sbt-nifi-nar plugin Actions Status Maven Central

A sbt plugin for creating NiFi Archive bundles to support the classloader isolation model of NiFi. Many functionality is from project sbt-pack and nifi-maven


  • sbt nar creates a distributable package in target/nar folder
    • All dependent jars including scala-library.jar are collected in target/nar/META-INF/bundled-dependencies folder
    • Create target/nar/META-INF/MANIFEST.MF with necessary properties
  • sbt narArchive generates nar archive that is ready to distribute
    • The archive name is target/{project name}-{version}.nar
  • sbt generateDocProcessors generates documentation html files in folder docs for processors (subclass of org.apache.nifi.processor.AbstractProcessor)
    • Each processor has own html file docs/${processor-name}.html that is generated by NiFi
    • docs/index.html contains list of processors


Add sbt-nifi-nar plugin to your sbt configuration:


Maven Central

addSbtPlugin("com.github.tonykoval" % "sbt-nifi-nar" % "(version)")


Minimum configuration


// [Required] Enable plugin

// [Required] Nifi version
nifiVersion := "1.13.2"

// [Optional] check trait `NarKeys`

// [Optional] add manifest attributes
packageOptions := Seq(
    ("Custom-Key", "Custom-Value")

Now you can use sbt narArchive command in your project.


  • dependency graph
  • support extensions


To test sbt-nifi-nar plugin, run

$ sbt scripted


Any issues, feature requirement and contributions are welcome!


Except as otherwise noted this software is licensed under the Apache License, Version 2.0

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.