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 narcreates a distributable package intarget/narfolder- All dependent jars including scala-library.jar are collected in
target/nar/META-INF/bundled-dependenciesfolder - Create
target/nar/META-INF/MANIFEST.MFwith necessary properties
- All dependent jars including scala-library.jar are collected in
sbt narArchivegeneratesnararchive that is ready to distribute- The archive name is
target/{project name}-{version}.nar
- The archive name is
sbt generateDocProcessorsgenerates documentation html files in folderdocsfor processors (subclass oforg.apache.nifi.processor.AbstractProcessor)- Each processor has own html file
docs/${processor-name}.htmlthat is generated by NiFi docs/index.htmlcontains list of processors
- Each processor has own html file
Add sbt-nifi-nar plugin to your sbt configuration:
project/plugins.sbt
addSbtPlugin("com.github.tonykoval" % "sbt-nifi-nar" % "(version)")- https://github.com/tonykoval/nifi-vub-scala-bundle
- https://github.com/tonykoval/nifi-scala-bundle.g8
build.sbt
// [Required] Enable plugin
enablePlugins(NarPlugin)
// [Required] Nifi version
nifiVersion := "1.13.2"
// [Optional] check trait `NarKeys`
// [Optional] add manifest attributes
packageOptions := Seq(
ManifestAttributes(
("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
http://www.apache.org/licenses/LICENSE-2.0
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.