2011-12-17 27 views
12

我對如何分發具有很多依賴性的Java應用程序(在Maven的pom.xml中指定)感興趣。創建一個可以下載自己的依賴的Java應用程序

很明顯,將所有內容打包到一個大的.jar文件中是可能的。然而,這看起來很浪費,因爲應用程序的更新也需要發送所有依賴關係的新副本。

所以我在尋找分發,做以下的應用程序的方式:

  • 只包括主.jar文件的核心應用需要
  • 下載的依賴性,當.jar文件運行
  • 保持依賴的本地副本,這樣,如果一個應用程序更新發布的依賴並不需要再次下載

什麼是最好的WA達到這個目標?

+0

在有人提出這個建議之前,OSGi似乎在這裏是一種矯枉過正的事情,但我相信它具有即時重新下載和更新包的好功能。 – 2011-12-17 20:34:04

+0

這對您現在沒有幫助,但我認爲我會提到在JDK本身的層面上正在開展工作來解決此問題。它被稱爲項目拼圖,目前計劃包含在JDK 8中。請閱讀更多關於它的內容:http://openjdk.java.net/projects/jigsaw/ – ivantod 2011-12-17 20:38:52

+0

@ivantod:三年後。 JDK 8不在了。還沒有拼圖。儘管如此,仍然在路線圖上。 – Thilo 2015-01-05 07:48:32

回答

2

您可以使用web start technology(aka發佈jnlp文件)發佈您的文件。我相信這會爲您處理大部分功能,包括可更新性。

+0

參見[Java Web Start](http:// stackoverflow .com/tags/java-web-start/info)標籤信息,其中包括上述鏈接和其他8個以及JWS的「面向開發人員」的描述。 – 2011-12-18 03:25:23

3

你可以使用Maven,如Maven Run Project所述嗎?

這是我如何在自己的網絡中設置自己的一些應用程序。我從來不需要擔心長時間的類路徑混亂或下載/提供程序設置的依賴關係。這種方法也符合您的所有標準。

+0

是的,而且可能是maven的一個包裝,這樣用戶就不用處理它了,推送更新只會改變很少的poms,而maven會負責其餘的部分。 – milan 2011-12-17 21:08:53

相關問題