2010-07-18 90 views
8

部署Java獨立應用程序以及任何所需的jar依賴項,配置文件和啓動腳本的最佳實踐(和啓用工具)是什麼?部署Java文件

是否有任何易於發佈二進制發行版的Maven插件,以便用戶不需要使用maven?

回答

3

至於依賴,我只是用maven dependency copy plugin和所有依賴複製到./lib文件夾,並提供使用該class path wildcard(這樣你可以改變你的依賴不亞於您想和沒有啓動腳本更改啓動腳本)。至於配置文件,我把它放在一個./config文件夾中,並再次將其包含在啓動腳本的應用程序的類路徑中(前者確實只適用於> java 1.6)。

所以最終幾乎所有我的應用程序的結構如下:

mystuff.jar launch.sh 
./lib 
./config 

那我就拉上了整個事情,它給我的用戶。整個過程可能很容易使用maven自動化,但我承認我是用手工完成的:p

如果您願意並且許可證允許,您也可以將所有依賴關係捆綁到一個jar文件中(將擴展的依賴關係)使用assembly plugin。這往往會使罐子體積龐大,給用戶一個更新的應用程序。更加困難。此外,我有幾次因爲類文件被覆蓋或其他問題,所以我個人堅持./lib文件夾。

6

是否有任何Maven插件易於發佈二進制版本,以便用戶不需要使用maven例如?

使用Maven Assembly Plugin創建一個二進制分佈,如項目的zip/tar.gz/tar.bz2。這個插件是非常靈活的 - 以一些複雜的代價 - 你幾乎可以做任何你想要的。然後deploy(在maven意義上)生成的神器,上傳它的地方等

1

有launch4j,如果你能得到它的工作,將Java應用程序捆綁到您的平臺的可執行文件。

1

如果您的部署目標支持RPM文件,我強烈建議您調查rpm-maven-plugin。它允許您輕鬆將項目工件(包括依賴項)映射到RPM包。

我一直在使用它,對於中等規模的應用程序部署非常成功。

0

看看Appassembler Maven Plugin。您可能還想將其與Assembly Maven Plugin結合使用。

使用appassembler插件通過指定可執行文件名稱和主類來生成一組「程序」。您也可以預先安裝並創建一個etc目錄,您可以在其中添加配置文件。

如果使用啓動腳本和二進制文件目錄生成目錄不夠,可以使用程序集插件將其他文件(比如配置文件)複製到相應的目錄和/或打包應用程序歸檔。

0

您可以使用Oracle的Ant或Maven腳本:

http://docs.oracle.com/javafx/2/deployment/jfxpub-deployment.htm

以上,不僅編譯代碼,並創建jar文件,但它也將創建二進制可執行文件(視窗EXE文件或Mac應用程序文件)。它也可以創建本地安裝程序。此外,它還允許您將JVM與發行版一起使用,因此最終用途不需要安裝Java。