2013-05-02 59 views
0

我希望在我的數據版本化應用程序中與Jackrabbit 2.x集成。Jackrabbit RMI lucene衝突

我的應用程序有依賴的Lucene 2.9.1

的問題是,兔崽子依賴於Lucene的的更高版本3.6),因此我不能放置jackrabbit-core jar與我的應用程序在相同的類路徑中,因爲它與我的lucene jar衝突。

因爲我不願意實現WebDAV客戶端,所以我想過使用RMI實現,但是,我看到jackrabbit-rmi jar也依賴於jackrabbit-core和Lucene。

有什麼辦法可以解決這個問題在我的應用程序中使用jackrabbit RMI?還是有一些其他解決方案可以讓我使用Jackrabbit而不升級我的lucene jar?

回答

0

您可以嘗試使用jarjar將新的Lucene重新打包到另一個包中,然後從那裏使用它。

+0

問題是我的版本比較老。另外打包不會解決在同一個類路徑中引用兩個jar的問題,如果我包含我自己的「新」打包jar,我仍然會與其他依賴關係發生衝突。 – Asaf 2013-05-02 13:43:17

+0

如果只有你自己的代碼需要新的Lucene,那麼它應該可以,因爲你會通過不同的包提到更新的Lucene API。但如果這些是其他一些需要更新的Lucene的庫,那麼我認爲jarjar或其他任何工具都不能幫助你。 – mindas 2013-05-02 14:01:36

0

在你的應用服務器上配置Jackrabbit作爲資源提供者怎麼樣? 因此,您將通過JNDI引用它,並且只通過JCR API避免衝突(因爲資源將位於不同的類加載器中)。