本文介紹通過maven將項目打成可執(zhí)行jar包的方法。
成都網(wǎng)絡(luò)公司-成都網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián)公司十年經(jīng)驗成就非凡,專業(yè)從事成都網(wǎng)站制作、網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè),成都網(wǎng)頁設(shè)計,成都網(wǎng)頁制作,軟文平臺,廣告投放等。十年來已成功提供全面的成都網(wǎng)站建設(shè)方案,打造行業(yè)特色的成都網(wǎng)站建設(shè)案例,建站熱線:13518219792,我們期待您的來電!
本文需要讀者具備maven基礎(chǔ)知識,了解maven的一般配置、插件配置,了解maven的phase、goal的概念,了解dependency和manifest的作用。
先決條件:
(本文所述方法適用于項目的特點)
1、項目必須是maven項目;
3、項目中必須有一個主入口類,在用戶雙擊打包后的jar文件時可以被執(zhí)行。
打包:
第一種情況:獨(dú)立項目,且無第三方依賴包
這種情況下,我們需要maven的maven-jar-plugin插件來幫我們打包。請在項目pom.xml中的plugin配置處加入如下內(nèi)容:(注意看注釋部分)
...... maven-jar-plugin 2.3.2 true lib/ com.yourProjectPackage.YourEntranceClass
然后用mvn clean install來編譯安裝你的項目。命令執(zhí)行結(jié)束后會生成一個jar文件,一個lib文件夾(如果你的項目引用了3rd-party dependencies的話)。雙擊jar文件,就立刻看到效果了。有界面的項目應(yīng)該能看到主界面(如果你程序沒錯的話),沒有界面的,應(yīng)該可以從你機(jī)器的java console里看到相關(guān)信息,或者項目自身有l(wèi)og輸出或具有神奇的效果的,可以直接去檢視輸出結(jié)果。
第二種情況:項目+第三方依賴包
這種情況就無法使用maven-jar-plugin插件來打包了。我們要用另一個插件maven-assembly-plugin。這個插件可以幫助我們靈活的打包我們的項目(不僅打包jar項目,還可以用于ear、war等項目的打包,本文只介紹如何打可執(zhí)行jar包)。這里,我們使用此插件將我們的source code編譯結(jié)果以及項目的dependencies打到一起,形成一個jar文件。
下面就是項目的pom.xml中plugin的配置部分:
maven-assembly-plugin 2.6 com.your.package.YourEntranceClass jar-with-dependencies make-assembly package single
添加了此plugin之后,就可以clean install你的maven項目了。然后在maven命令執(zhí)行結(jié)束后的console里會找到類似以下內(nèi)容:
--- maven-install-plugin:2.4:install (default-install) @ MvnCfgSwitcher ---
Installing F:\uuuu\vvvv\Wwwww\target\Wwwww-1.0-SNAPSHOT.jar to Y:\mvn_repo\com\yourname\Wwwww\1.0-SNAPSHOT\Wwwww-1.0-SNAPSHOT.jar
Installing F:\uuuu\vvvv\Wwwww\pom.xml to Y:\mvn_repo\com\yourname\Wwwww\1.0-SNAPSHOT\Wwwww-1.0-SNAPSHOT.pom
Installing F:\uuuu\vvvv\Wwwww\target\Wwwww-1.0-SNAPSHOT-jar-with-dependencies.jar to Y:\mvn_repo\com\yourname\Wwwww\1.0-SNAPSHOT\Wwwww-1.0-SNAPSHOT-jar-with-dependencies.jar
其中藍(lán)色標(biāo)識部分就是生成的all-in-one的可執(zhí)行jar文件。
快雙擊打包結(jié)果試試看吧,親!