如何管理自定义处理器所需的外部jar依赖项

时间:2019-07-23 09:00:18

标签: java apache-nifi

我写了一个定制的nifi处理器。它依赖于另一个团队构建的组件。我们经常获得此组件的新版本。因此,为了避免通过在自定义处理器中包含组件代码来重建自定义处理器,我们specifying path to component jar in processor's properties是这样,以便处理器可以动态加载jar。

但是,我不确定我们应该如何管理该组件的依赖关系。我们希望组件的新版本尽可能干净。那么,当我们在NiFi服务器上部署组件(在处理器属性中指定的位置复制粘贴)时,如何确保该组件也具有其所有依赖项?我知道我们可以要求团队为该组件构建FAT JAR。

  1. 但这是(FAT JAR)标准方法吗?

    此外,由于依赖项的许可问题,我不知道是否可以构建FAT jar。

  2. 是否有其他方法来确保新组件的依赖关系在部署时可用?

  3. Apache NiFi发行版随附的内置/标准处理器如何处理它?<​​/ p>

1 个答案:

答案 0 :(得分:0)

这只能回答#3,但是...

Apache NiFi中的所有标准处理器都会在构建时通过标准Maven依赖项将所需的依赖项捆绑到NAR中。

某些处理器利用dynamicModifyClassPath来添加通常所需之外的其他资源。

例如,HDFS处理器包括用于与hdfs:// FileSystem对话的标准HDFS客户端,但是还有许多其他客户端库具有自己的FileSystem实现,NiFi不能全部包含它们。甚至不了解其中一些。因此,HDSFS处理器具有“其他资源”属性,您可以在其中使用其他FileSystem实现指定jar的位置。