2012-07-10 37 views
1

我是Java的新手,我寫了一個API,我想分發它。我正在創建一個Jar文件來創建一個API,但是我的程序使用了一些其他API,比如Jena和XSOM。如何在Eclipse的幫助下將這些API包括到我的Jar發行版中?我已閱讀過類似的問題,但找不到答案。向我的Java API添加依賴關係

回答

1

問題沒有解決。這取決於分配用於不同的目的。

如果你不能說清楚,只要拿起一些工具來做到這一點:

  • 如何fatjar?它只是添加任何依賴JAR到一個jar,你可以從eclipse菜單中導出可執行jar。

  • Apache Maven怎麼樣?它簡化了任何Java項目的依賴管理,但學習如何使用它需要一些時間。

  • 如何構建工具?例如,Apache ANT只是一個爲Java項目設計的類似工具。與maven不同,它以任何你想要的順序組裝項目。

  • JSmooth怎麼樣?它將你的項目打包成可執行文件。

    忘記包含許可證。當您分發第三方JAR時,許可聲明也應該分發。

無論如何,分發有很多目的。例如,準備在Web容器中部署和運行的依賴關係。通常,我們有部署工具(由web容器提供者提供的ant任務或maven插件)。例如,爲獨立的Java應用程序準備依賴關係。在這種情況下,我們應該制定部署工具並考慮自己的過程:

  • 應用程序如何運送到生產環境?通過網址下載,通過scp複製,從發佈分支在git回購簽出?
  • 如何更新生產中的應用程序?這是一個重要的問題,當您遇到問題時,需要快速修復並進行熱部署。
  • 關於類路徑中JAR的更好的順序是什麼?錯誤的訂單將導致類映射或加載錯誤的配置文件。
1

你需要將一些依賴的jar添加到classpath中。

你既可以:

  • 列表中的其他罐子的依賴關係,只是指示您的 「API」將它們添加到自己的類路徑的用戶。

  • 如果你的「api」涉及到一個主類,並且你想把它作爲一個可執行的jar來發布,你可以用包含所需庫的外部文件夾來發布你的jar,然後修改你的jar清單來指定你的主類,類路徑包括那些external dependencies

  • 如果你用maven,然後列出它們在你的依賴那麼他們將自動包含在客戶端的代碼,因爲他們會被視爲是transitive dependencies.

  • 陰影罐子 - 因此開箱包括他們他們的內容並將它們包含在你的jar中。有三種方式映入腦海此*:

    • 如果您正在構建的API中行家,你可以看看shade plugin
    • 你可以看看使用有點可笑命名Jar Jar Links
    • (?!)
    • eclipse「export as executable jar」允許你保存一個類似功能的ant文件。

(*在任何情況下,它取決於依賴庫的許可,他們是否允許你這樣做) -

+0

我不想創建可執行jar文件。我沒有任何主要課程。我想創建一個將被其他人使用的jar文件,就像我使用的API一樣。但是我需要將這些API添加到我的jar文件中,以便人們不必逐個添加這些API以便使用我的API。 – atakan 2012-07-11 06:23:49

+0

所以你想遮蔽罐子 - 或沿着maven路線走下去。 – plasma147 2012-07-11 07:58:25