我有以下项目结构
nifi-basename-bundle
├── nifi-basename-nar
│ └── pom.xml
├── nifi-basename-processors
│ ├── pom.xml
| ├── libs
| | └── xyz.jar
│ └── src
│ ├── main
│ │ ├── java
│ │ │ └── org.apache.nifi.processors.basename
│ │ │ └── MyProcessor.java
│ │ └── resources
│ │ ├── META-INF
│ │ │ └── services
│ │ └── org.apache.nifi.processor.Processor
│ └── test
│ └── java
│ └── org.apache.nifi.processors.basename
│ └── MyProcessorTest.java
└── pom.xml
我nifi-basename-nar
的项目具有以下项目的依赖关系nifi-basename-processors
:
<dependency>
<groupId>com.example.prj</groupId>
<artifactId>nifi-basename-processors</artifactId>
<version>1.0.0</version>
</dependency>
我在项目的 pom.xml 中添加了一个外部 jar 的依赖项,nifi-basename-processors
如下所示,我的自定义处理器指的是这个 jar 中的类:
<dependency>
<groupId>com.example.prj</groupId>
<artifactId>test1</artifactId>
<version>1.0.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/libs/xyz.jar</systemPath>
</dependency>
一旦我使用 构建项目maven clean install
,在项目下生成的 narnifi-basename-nar
就没有xyz.jar
捆绑在其中。因此,NoClassDefFoundError
当此自定义 nar 部署在 nifi 中时,它会抛出并且 nifi 无法启动。
处理此要求的正确方法是什么?