2016-02-12 77 views
1

這是我第一次使用maven,我想爲apache-nifi實現一個處理器。現在,我正在使用一個專有的jar文件,這是一個SDK。它不在存儲庫上。所以我把它放在pom.xml如下。由於本地Maven依賴關係jar中的java.lang.NoClassDefFoundError導致Apache Nifi失敗。

<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構建過程也是如此。

this tutorial所述,我使用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文件。

如何克服這一點?

回答