0

我有以下项目结构

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 无法启动。

处理此要求的正确方法是什么?

4

0 回答 0