1

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 ファイルは表示されません。

これを克服する方法は?

4

1 に答える 1

2

次の Stackoverflow の質問は、あなたが尋ねたものと似ているようです。 依存関係のあるMaven 2アセンブリ:スコープ「システム」の下のjarは含まれていません

依存関係をローカル リポジトリに置き、pom で宣言してみてください。

于 2016-02-12T04:59:01.900 に答える