JAVA?IDEA項(xiàng)目打包為jar包的步驟詳解
前言
如下簡(jiǎn)單 maven 項(xiàng)目,現(xiàn)在 maven 項(xiàng)目比較流行,你還沒(méi)用過(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)目沒(méi)有有啟動(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 就可以開(kāi)始打包了, 最終生成的 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)文章
SpringBoot集成itextpdf實(shí)現(xiàn)根據(jù)模板動(dòng)態(tài)生成PDF
這篇文章主要為大家詳細(xì)介紹了SpringBoot如何集成itextpdf實(shí)現(xiàn)根據(jù)模板動(dòng)態(tài)生成PDF,文中的示例代碼講解詳細(xì),需要的小伙伴可以參考一下2024-03-03springboot集成ES實(shí)現(xiàn)磁盤文件全文檢索的示例代碼
這篇文章主要介紹了springboot集成ES實(shí)現(xiàn)磁盤文件全文檢索的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11Spring+SpringMVC+MyBatis深入學(xué)習(xí)及搭建(三)之MyBatis全局配置文件解析
這篇文章主要介紹了Spring+SpringMVC+MyBatis深入學(xué)習(xí)及搭建(三)之MyBatis全局配置文件解析,需要的朋友可以參考下2017-05-05Java使用ANTLR4對(duì)Lua腳本語(yǔ)法校驗(yàn)詳解
ANTLR是一個(gè)強(qiáng)大的解析器生成器,用于讀取、處理、執(zhí)行或翻譯結(jié)構(gòu)化文本或二進(jìn)制文件,下面就跟隨小編一起看看Java如何使用ANTLR4對(duì)Lua腳本語(yǔ)法校驗(yàn)吧2025-04-04使用自定義注解實(shí)現(xiàn)redisson分布式鎖
這篇文章主要介紹了使用自定義注解實(shí)現(xiàn)redisson分布式鎖,具有很好的參考價(jià)值,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-02-02SpringBoot路徑映射實(shí)現(xiàn)過(guò)程圖解
這篇文章主要介紹了SpringBoot路徑映射實(shí)現(xiàn)過(guò)程圖解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12Java使用screw來(lái)對(duì)比數(shù)據(jù)庫(kù)表和字段差異
這篇文章主要介紹了Java如何使用screw來(lái)對(duì)比數(shù)據(jù)庫(kù)表和字段差異,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-12-12Mybatis中${param}與#{param}的區(qū)別說(shuō)明
這篇文章主要介紹了Mybatis中${param}與#{param}的區(qū)別說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-06-06