JAVA?IDEA項(xiàng)目打包為jar包的步驟詳解
前言
如下簡(jiǎn)單 maven 項(xiàng)目,現(xiàn)在 maven 項(xiàng)目比較流行,你還沒用過(guò)就OUT了。需要打包jar

先設(shè)置:點(diǎn)擊 File ==> Project Structure ==> Artifacts ==> 點(diǎn)擊加號(hào) ==> 選擇JAR ==> 選擇From modules with dependencies

一、將所有依賴和模塊代碼打包為一個(gè)jar
如果把所有項(xiàng)目依賴的其他庫(kù)和代碼打成一個(gè) jar,可以選擇extract to the target JAR 。比如如果你項(xiàng)目里依賴了 fastjson.jar 等第三方 jar,可以把這些第三方 jar 也打到最終生成的 jar 里面。
1.選擇要打包的模塊和啟動(dòng)類,然后選擇 extract to the target JAR 。

最后點(diǎn)擊 ok 設(shè)置完畢
2.確認(rèn)要生成的 jar 名稱(默認(rèn)是項(xiàng)目或模塊名),確認(rèn) jar 包的輸出的目錄,確認(rèn)最終輸出的 jar 里包含的依賴(我這里包含了14個(gè)其他依賴和項(xiàng)目代碼,如果不想包含第三方依賴可以選中相關(guān)依賴點(diǎn)擊減號(hào)進(jìn)行排除),點(diǎn)擊 Apply 和 Ok

3 . 點(diǎn)擊 Build ==> Build Artifacts
先點(diǎn)擊 clear 進(jìn)行清除,然后再點(diǎn)擊 Build 進(jìn)行構(gòu)建,就可以打成一個(gè)jar包了
(如果不點(diǎn)擊 clear 進(jìn)行清理上次的構(gòu)建,直接點(diǎn)擊Build 進(jìn)行構(gòu)建的話,可能會(huì)把上次構(gòu)建的東西打進(jìn)去導(dǎo)致 jar 包變得比較大)
4.構(gòu)建打包提示成功后就可以在輸出目錄里找到打好的 jar 包了
二、只將模塊代碼打包為一個(gè)jar
如果你不想把所有項(xiàng)目依賴的其他庫(kù)和代碼都打成一個(gè) jar,可以選擇copy to the output directory and link via manifest 。比如,如果你項(xiàng)目里依賴了 fastjson.jar 等第三方 jar,這些第三方 jar 不會(huì)被打到最終生成的jar里面,只會(huì)把這些依賴的 jar 和最終生成的 jar 輸出到一個(gè)目錄下。
1.先選擇你要打包的模塊和啟動(dòng)類,然后選擇copy to the output directory and link via manifest ,點(diǎn)擊ok
2.確認(rèn)要生成的 jar 名稱(默認(rèn)是項(xiàng)目或模塊名),確認(rèn) jar 包的輸出的目錄,確認(rèn)項(xiàng)目使用到的依賴,點(diǎn)擊 Apply 和 Ok
3.點(diǎn)擊 Build ==> Build Artifacts
一般先點(diǎn)擊 clear 進(jìn)行清除,然后再點(diǎn)擊 Build 進(jìn)行構(gòu)建,就可以打成一個(gè) jar 包了
(如果不點(diǎn)擊 clear 進(jìn)行清理上次的構(gòu)建,直接點(diǎn)擊Build 進(jìn)行構(gòu)建的話,可能會(huì)把上次構(gòu)建的東西打進(jìn)去導(dǎo)致 jar 包變得比較大)

4.構(gòu)建打包提示成功后就可以在輸出目錄里找到打好的 jar 包了,另外項(xiàng)目依賴的其他 jar 包也會(huì)輸出到這個(gè)目錄
三、也可以采用其他方法打包
上面的方式是使用 java通行編輯器 IDEA 來(lái)打包,如果你使用的是 maven 項(xiàng)目,你也可以使用其他插件來(lái)打包??梢允褂?spring-boot-maven-plugin 插件打包,還有maven-dependency-plugin、maven-shade-plugin、maven-assembly-plugin等插件也可以打包。
使用 spring-boot-maven-plugin 插件打包: 在 pom.xml 中的 build 標(biāo)簽下的 plugins 標(biāo)簽下加入如下配置:
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>1.0.1-SNAPSHOT</version>
<configuration>
<mainClass>com.example.cipherdemo</mainClass>
<finalName>test</finalName>
<includes>
<include>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</include>
</includes>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>mainClass 標(biāo)簽里是你的項(xiàng)目的啟動(dòng)類的包路徑,如果你的項(xiàng)目沒有有啟動(dòng)類也不需要通過(guò) java -jar 運(yùn)行的話可以刪除 mainClass
finalName 標(biāo)簽里的就是打出來(lái)的 jar 名,我這里是 XTool ,最終生成的就是 XTool.jar 。若不使用 finalName 指定,則打包生成的 jar 包名默認(rèn)使用 pom.xml 文件里 artifactId 標(biāo)簽和 version 標(biāo)簽里的值作為 jar 的名。
如果最終生成的 jar 包不包含第三方依賴那直接用上面的插件配置即可。如果希望最終生成的 jar 包里包含第三方依賴那就刪除 includes 標(biāo)簽及其里面的內(nèi)容
在 IDEA 右邊側(cè)邊欄的 Maven 選項(xiàng)卡里點(diǎn)擊 Lifecyle 下的 package 就可以開始打包了, 最終生成的 jar 包就在 target 目錄下
JAR包使用:不用配置apache環(huán)境

總結(jié)
到此這篇關(guān)于JAVA IDEA項(xiàng)目打包為jar包的文章就介紹到這了,更多相關(guān)JAVA IDEA項(xiàng)目打包jar包內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
spring Mvc配置xml使ResponseBody返回Json的方法示例
這篇文章主要給大家介紹了關(guān)于spring Mvc配置xml使ResponseBody返回Json的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2018-04-04
Java基礎(chǔ)知識(shí)之CharArrayReader流的使用
這篇文章主要介紹了Java基礎(chǔ)知識(shí)之CharArrayReader流的使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12
Java數(shù)據(jù)結(jié)構(gòu)及算法實(shí)例:考拉茲猜想 Collatz Conjecture
這篇文章主要介紹了Java數(shù)據(jù)結(jié)構(gòu)及算法實(shí)例:考拉茲猜想 Collatz Conjecture,本文直接給出實(shí)現(xiàn)代碼,代碼中包含詳細(xì)注釋,需要的朋友可以參考下2015-06-06
java Callable接口和Future接口創(chuàng)建線程示例詳解
這篇文章主要為大家介紹了java Callable接口和Future接口創(chuàng)建線程示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11
SpringBoot后端實(shí)現(xiàn)小程序微信登錄功能實(shí)現(xiàn)
微信小程序登錄是開發(fā)者通過(guò)微信提供的身份驗(yàn)證機(jī)制,獲取用戶唯一標(biāo)識(shí)(openid)和會(huì)話密鑰(session_key)的過(guò)程,這篇文章給大家介紹SpringBoot后端實(shí)現(xiàn)小程序微信登錄功能實(shí)現(xiàn),感興趣的朋友跟隨小編一起看看吧2025-05-05
springmvc的validator數(shù)據(jù)校驗(yàn)的實(shí)現(xiàn)示例代碼
這篇文章主要介紹了springmvc的數(shù)據(jù)校驗(yàn)的實(shí)現(xiàn)示例代碼, 具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07
Java數(shù)據(jù)結(jié)構(gòu)之散列表(動(dòng)力節(jié)點(diǎn)Java學(xué)院整理)
散列表(Hash table,也叫哈希表),是根據(jù)關(guān)鍵字(key value)而直接進(jìn)行訪問(wèn)的數(shù)據(jù)結(jié)構(gòu)。這篇文章給大家介紹了java數(shù)據(jù)結(jié)構(gòu)之散列表,包括基本概念和散列函數(shù)相關(guān)知識(shí),需要的的朋友參考下吧2017-04-04
Java如何根據(jù)不同系統(tǒng)動(dòng)態(tài)獲取換行符和盤分割符
這篇文章主要介紹了Java如何根據(jù)不同系統(tǒng)動(dòng)態(tài)獲取換行符和盤分割符,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12

