maven を使用するのはこれが初めてです。apache-nifi 用のプロセッサを実装したいと考えています。このために、SDK である独自の jar ファイルを使用しています。リポジトリにはありません。したがってpom.xml
、次のように入れました。
<dependency>
<groupId>KS</groupId>
<artifactId>En-SDK</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/En-SDK-Java.jar</systemPath>
</dependency>
intelliJ
この依存関係のインポートに問題がないように見えるものを使用しています。Maven ビルド手順も同様です。
このチュートリアルmvn clean install
で説明されているように使用します。これにより、出力としてパッケージが得られます。(ビルドエラーなし)nar
これnar
は、ディレクトリに配置されるはずですが$NIFI_HOME/lib
、前述のローカル jar をバンドルしていません。
この nar ファイルを必要なディレクトリに配置して起動するapache-nifi
と、
INFO [main] org.apache.nifi.nar.NarClassLoaders Loaded NAR file: /..././work/nar/extensions/myNar.nar
によってロードされているNarClassLoaders
ようですが、その後例外が発生nifi
して起動しません。
java.lang.NoClassDefFoundError: com/kls/../../SubscriptionInterface
上記のSubscriptionInterface
ローカル jar のクラスです。
nar
ファイルのフォルダー構造を見ると、内部META-INF/bundled-dependencies/
には、pom で定義されている他のすべての依存 jar ファイルが表示されますが、使用したこのローカル jar ファイルは表示されません。
これを克服する方法は?