2016-02-08 125 views
0

我遇到了以編程方式設置到本地CouchDB的連接問題。CouchDB4j/mvn依賴項丟失

我正在使用couchDb4j-,並且事情看起來很好,直到我運行並嘗試連接到數據庫。

我的控制檯拋出以下錯誤:

Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: org/apache/http/params/HttpParams 
[...] 
Caused by: java.lang.ClassNotFoundException: org.apache.http.params.HttpParams 

由於我的小應用程序沒有找到一個類,我檢查了我的一切dependencies-應該罰款。我有:

<dependency> 
    <groupId>org.apache.httpcomponents</groupId> 
    <artifactId>httpcore</artifactId> 
    <version>4.0-beta3</version> 
</dependency> 
<dependency> 
    <groupId>commons-httpclient</groupId> 
    <artifactId>commons-httpclient</artifactId> 
    <version>3.1</version> 
</dependency> 

,其中應包括所有必要的HTTP特定的.jar(特別是第一個應包括的HttpParams二進制文件;來源:http://mvnrepository.com/artifact/org.apache.httpcomponents/httpcore/4.0-beta3)。

從包括緩存我的系統上錯誤的二進制文件阻止,我運行了以下內容:

MVN清潔& & MVN包

我也刪除了我的文件夾中的.m2。

谷歌搜索給我提示,我的類路徑可能是錯誤的,導致運行時丟失依賴關係。但我已經在我的朋友中建立了我的班級路徑;在這裏看到:

<plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-jar-plugin</artifactId> 
     <version>2.4</version> 
     <configuration> 
     <archive> 
      <manifest> 
      <addClasspath>true</addClasspath> 
      <classpathPrefix>lib/</classpathPrefix> 
      <mainClass>Packagename.Main</mainClass> 
      </manifest> 
     </archive> 
     </configuration> 
</plugin> 

希望誰能給我一個想法,這樣我可以解決這個問題:)

最好的問候。

+0

使用這個版本和check' \t org.apache.httpcomponents \t 的HttpCore \t 4.1 ' – soorapadman

+0

這種失敗似乎是獨立於版本 - 我已經添加了4.1,但是這並沒有解決問題。 –

回答

0

找到了解決辦法。

該問題在執行期間缺少依賴關係。

要確保,所有必要的文件運行時綁定,我必須包括以下插件:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-shade-plugin</artifactId> 
    <version>1.6</version> 
    <executions> 
     <execution> 
     <phase>package</phase> 
     <goals> 
      <goal>shade</goal> 
     </goals> 
     </execution> 
    </executions> 
    </plugin> 

,如果我這樣做是正確,結合在一個「超級」罐子所有的依賴。 .. 來源:https://maven.apache.org/plugins/maven-shade-plugin/

0

添加這些依賴插件的聲明中是這樣的:

<plugin> 
    <groupId>...</groupId> 
    <artifactId>...</artifactId> 
    <version>...</version> 
    <dependencies> 
    ... 
</dependencies> 
</plugin> 

插件擁有自己的類路徑

+0

這會導致編譯器問題,因爲我們會破壞pom.xml的結構 –