1

一般来说,我对 Apache Nifi 和 NARs 很陌生。我正在创建一个自定义处理器 NAR 项目,该项目需要引用另一个 NAR 文件中存在的 jar 中的类。我无权访问生成此 NAR 的项目(源代码)。所以我试图将此 NAR 文件包含为 maven 依赖项。这类似于您将外部/本地 jar 添加为 maven 依赖项的方式。实现这一目标的正确方法是什么?

注意:我的自定义项目是“nifi-nar-bundles”的子项目,因此它将继承“nar-maven-plugin”

<parent>
    <groupId>org.apache.nifi</groupId>
    <artifactId>nifi-nar-bundles</artifactId>
    <version>1.11.4</version>
</parent>

我正在使用 eclipse 及其 maven 插件,并尝试了几件事:

#1

<dependency>
    <groupId>com.group.test</groupId>
    <artifactId>test-nar</artifactId>
    <version>1.0.0</version>
    <scope>system</scope>
    <type>nar</type>
    <systemPath>C:\test-nar-1.0.0.nar</systemPath>
</dependency>

这不会在 Eclipse 中的“Maven Dependencies”下添加 NAR 文件。但是,如果我将其删除<type>nar</type>,则会在“Maven Dependencies”下显示 NAR 文件,但不会将其 jar 放入类路径中。

#2

我使用以下命令将 NAR 安装在本地 maven 存储库中,并将其打包为“nar”:

mvn install:install-file -Dfile=test-nar-1.0.0.nar -DgroupId=com.group.test -DartifactId=test-nar -Dversion=1.0.0 -Dpackaging=nar

然后将其作为依赖项放入pom.xml文件中,如下所示:

<dependency>
    <groupId>com.group.test</groupId>
    <artifactId>test-nar</artifactId>
    <version>1.0.0</version>
    <type>nar</type>
</dependency>

这也不会在 Eclipse 中的“Maven Dependencies”下添加 NAR 文件。

4

1 回答 1

0

“nar”类型的 test-nar 依赖项应包含在您的 NAR 模块中,如果您无法将其依赖项引入您的代码模块(不是您的 NAR 模块),您可能需要包含提供的 NAR 本身在您的代码模块中,以获取代码模块进行编译。但是,依赖项将由父 NAR (test-nar) 在运行时提供。

于 2021-06-16T18:05:50.047 回答