2013-03-30 209 views
0

我正在研究一個圖書館,它有自己的圖書館依賴關係,我想抽象。Java |圖書館的內部圖書館包裝

Foo.jar 
    -> net 
     -> foo 
      -> java class files 
    -> lib 
     -> *.jar 
    -> src 
     -> foo 
      -> java source files 
    -> doc 
     -> javadoc and other docs 
    -> License.txt 

當我去測試我的圖書館,我可以很容易地從net.foo.*導入我的庫中的代碼,但得到拋出的異常,當我運行:我在我的項目導出到具有的結構的罐子後遇到了問題因爲「沒有合適的驅動程序......」,而其他依賴於從抽象層調用的內部庫。

我正在使用ANT構建我的jar,但不知道該怎麼做。理想情況下,用戶只需將我的jar添加到他們的構建路徑,然後導入我的包。

回答

1

您正在交付一組具有相關性的庫。庫的用戶可以選擇添加依賴庫。如果我理解正確,那麼通過包含依賴關係jar是你的庫jar的一部分,你想讓用戶變得簡單。您可以使用JarJar將許多罐子合併成一個罐子。

從網站..

瓶瓶鏈接是一種實用工具,可以很容易地重新包裝的Java 庫並將其嵌入到自己的分銷。這是有用的 有兩個原因:

您可以輕鬆地發送一個沒有外部依賴項的單個jar文件。

如果您的庫依賴於庫的特定版本(可能會與另一個庫的依賴關係衝突),則可以避免出現問題。

如果這是關於重新打包可執行jar,然後尋找One-Jar。在這裏討論Easiest way to merge a release into one JAR file