user1144004
user1144004

Reputation: 302

Add dependency of external jar to a NAR file

I have following project structure

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  

My nifi-basename-nar project has a dependency of nifi-basename-processors project as below:

<dependency>
    <groupId>com.example.prj</groupId>
    <artifactId>nifi-basename-processors</artifactId>
    <version>1.0.0</version>
</dependency>

I have added a dependency of an external jar in the pom.xml of nifi-basename-processors project like below and my custom processor is referring to classes in this 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>

Once I build the project using maven clean install, the nar generated under project nifi-basename-nar does not have the xyz.jar bundled inside it. Hence it throws NoClassDefFoundError and nifi cannot start when this custom nar is deployed in nifi.

What is the correct way to handle this requirement?

Upvotes: 0

Views: 759

Answers (0)

Related Questions