JAVA IDEA 項目打包為 jar 包詳解

前言
? ? 如下簡單 maven 項目,現在 maven 項目比較流行,你還沒用過就OUT了。需要打包jar


? ?先設置:點擊 File ==> Project Structure ==> Artifacts ==> 點擊加號 ==> 選擇JAR ==> 選擇From modules with dependencies

一、將所有依賴和模塊代碼打包為一個jar
? ? 如果把所有項目依賴的其他庫和代碼打成一個 jar,可以選擇extract to the target JAR 。比如如果你項目里依賴了 fastjson.jar 等第三方 jar,可以把這些第三方 jar 也打到最終生成的 jar 里面。

1.選擇要打包的模塊和啟動類,然后選擇 extract to the target JAR 。

最后點擊 ok 設置完畢

2.確認要生成的 jar 名稱(默認是項目或模塊名),確認 jar 包的輸出的目錄,確認最終輸出的 jar 里包含的依賴(我這里包含了14個其他依賴和項目代碼,如果不想包含第三方依賴可以選中相關依賴點擊減號進行排除),點擊 Apply 和 Ok

3 . 點擊 Build ==> Build Artifacts

先點擊 clear 進行清除,然后再點擊 Build 進行構建,就可以打成一個jar包了
(如果不點擊 clear 進行清理上次的構建,直接點擊Build 進行構建的話,可能會把上次構建的東西打進去導致 jar 包變得比較大)


4.構建打包提示成功后就可以在輸出目錄里找到打好的 jar 包了

二、只將模塊代碼打包為一個jar
? ? 如果你不想把所有項目依賴的其他庫和代碼都打成一個 jar,可以選擇copy to the output directory and link via manifest 。比如,如果你項目里依賴了 fastjson.jar 等第三方 jar,這些第三方 jar 不會被打到最終生成的jar里面,只會把這些依賴的 jar 和最終生成的 jar 輸出到一個目錄下。

1.先選擇你要打包的模塊和啟動類,然后選擇copy to the output directory and link via manifest ,點擊ok

2.確認要生成的 jar 名稱(默認是項目或模塊名),確認 jar 包的輸出的目錄,確認項目使用到的依賴,點擊 Apply 和 Ok

3.點擊 Build ==> Build Artifacts

? ? 一般先點擊 clear 進行清除,然后再點擊 Build 進行構建,就可以打成一個 jar 包了
(如果不點擊 clear 進行清理上次的構建,直接點擊Build 進行構建的話,可能會把上次構建的東西打進去導致 jar 包變得比較大)


4.構建打包提示成功后就可以在輸出目錄里找到打好的 jar 包了,另外項目依賴的其他 jar 包也會輸出到這個目錄

三、也可以采用其他方法打包
? ? ?上面的方式是使用 java通行編輯器 IDEA?來打包,如果你使用的是 maven 項目,你也可以使用其他插件來打包。可以使用 spring-boot-maven-plugin 插件打包,還有maven-dependency-plugin、maven-shade-plugin、maven-assembly-plugin等插件也可以打包。
? ? 使用 spring-boot-maven-plugin 插件打包: 在 pom.xml 中的 build 標簽下的 plugins 標簽下加入如下配置:

? ? ? ? ? ? <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 標簽里是你的項目的啟動類的包路徑,如果你的項目沒有有啟動類也不需要通過 java -jar 運行的話可以刪除 mainClass
? ? finalName 標簽里的就是打出來的 jar 名,我這里是 XTool ,最終生成的就是 XTool.jar 。若不使用 finalName 指定,則打包生成的 jar 包名默認使用 pom.xml 文件里 artifactId 標簽和 version 標簽里的值作為 jar 的名。
? ? 如果最終生成的 jar 包不包含第三方依賴那直接用上面的插件配置即可。如果希望最終生成的 jar 包里包含第三方依賴那就刪除 includes 標簽及其里面的內容
? ? 在 IDEA?右邊側邊欄的 Maven 選項卡里點擊 Lifecyle 下的 package 就可以開始打包了,?最終生成的 jar 包就在 target 目錄下

JAR包使用:不用配置apache環境

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/697559.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/697559.shtml
英文地址,請注明出處:http://en.pswp.cn/news/697559.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

VirtualBox+Vagrant快速搭建Centos7

目錄 安裝VirtualBox&#xff1a; 安裝Vagrant&#xff1a; 創建Vagrant項目目錄&#xff1a; 初始化Vagrant配置文件&#xff1a; 本地Vagrantfile中的鏡像名稱&#xff1a; 啟動虛擬機&#xff1a; SSH登錄虛擬機&#xff1a; 備注&#xff1a;安裝鏡像的另一種方式是…

springmvc+ssm+springboot房屋中介服務平臺的設計與實現 i174z

本論文擬采用計算機技術設計并開發的房屋中介服務平臺&#xff0c;主要是為用戶提供服務。使得用戶可以在系統上查看房屋出租、房屋出售、房屋求購、房屋求租&#xff0c;管理員對信息進行統一管理&#xff0c;與此同時可以篩選出符合的信息&#xff0c;給筆者提供更符合實際的…

Autodesk CAD如何建立圖層方框?

在AutoCAD中&#xff0c;要建立圖層方框&#xff08;Layer Box&#xff09;可以通過以下步驟實現&#xff1a; 打開圖層管理器&#xff1a; 在 AutoCAD 中&#xff0c;您可以通過輸入“LA”命令或在菜單欄中選擇“格式” > “圖層管理器”來打開圖層管理器對話框。 創建新圖…

記阿里云mysql丟表丟數據的實踐記錄

第一時間掛工單&#xff0c;聯系工程師指引&#xff0c;現在回過來想&#xff0c;第一時間要確認發生時間。 1.通過性能視圖&#xff08;馬后炮的總結&#xff0c;實際憑記憶恢復了三四次才找到數據&#xff09; 2.先恢復數據 通過Navicat工具&#xff0c;結構同步&#xff0…

解決IntelliJ IDEA 2023版本創建Spring項目時Java只能選擇17或21的問題

問題描述&#xff1a; 當使用IntelliJ IDEA2023版本中Spring Initializr新建Spring項目時&#xff0c;即使JDK配置項為1.8&#xff0c;Java配置項仍然只能選17或21. 在JDK為1.8版本情況下&#xff0c;Java選擇17或21&#xff0c;點擊NEXT按鈕&#xff0c;則會彈窗提示SDK不支持…

Sora: 開啟AI視頻創作的新紀元

隨著人工智能技術的飛速進步&#xff0c;AI視頻模型已迅速成為科技界的新焦點。在這股創新浪潮中&#xff0c;OpenAI推出的Sora&#xff0c;不僅以其前所未有的性能吸引了全球的目光&#xff0c;更以前瞻性的技術定義了AI視頻領域的未來。Sora不僅是一個里程碑式的產品&#xf…

java面試題之SpringMVC篇

Spring MVC的工作原理 Spring MVC的工作原理如下&#xff1a; DispatcherServlet 接收用戶的請求找到用于處理request的 handler 和 Interceptors&#xff0c;構造成 HandlerExecutionChain 執行鏈找到 handler 相對應的 HandlerAdapter執行所有注冊攔截器的preHandler方法調…

音視頻面試題集錦

下面是音視頻開發面試題精選&#xff1a; 1、談談 iOS 音視頻采集相關接口和數據結構的設計&#xff1f;2、如何降低處理音視頻鏈路中的內存峰值&#xff1f;3、OpenGL 如何實現二分屏效果&#xff1f;4、使用 OpenGL 繪制時對于二維坐標需要注意什么&#xff1f; 1、談談 iO…

Vue中如何使用dayjs

Day.js中文網Day.js是一個極簡的JavaScript庫&#xff0c;可以為現代瀏覽器解析、驗證、操作和顯示日期和時間。https://dayjs.fenxianglu.cn/ 單位不區別大小寫&#xff0c;支持復數和縮寫形式 單位縮寫描述 date D日期 [1,31]dayd星期 [0,6]&#xff08;星期日0&#xff0c…

云計算面試題【后期】

前言&#xff1a; 隨著年齡的增長生活瑣碎的事情、煩心的事情日漸增多&#xff0c;怠慢了更新&#xff0c; 1.什么是數據庫 DB.DataBase 數據庫&#xff1a; 依照某種數據模型進行組織并存放到存儲器的數據集合 DBMS.DataBase Management System – 數據庫管理系統&#xff1a;…

Java MP3轉PCM

Java MP3轉PCM 1 添加依賴2 Java 代碼 1 添加依賴 <dependency><groupId>com.googlecode.soundlibs</groupId><artifactId>mp3spi</artifactId><version>1.9.5.4</version> </dependency>2 Java 代碼 package com.xu.music.…

迪蕭科技有限公司邀您參觀2024生物發酵展

參展企業介紹 浙江迪蕭科技有限公司位于浙江杭州&#xff0c;是一家專注于膜技術的國家高新企業。公司針對食品飲料、醫藥保健等領域的過程分離與控制、產品提取及濃縮、廢料資源化利用等提供全方案解決服務。堅持以“顧客至上、優質服務、卓越品質”為原則。為客戶企業提供清…

視頻批量瘦身:一鍵縮小尺寸,輕松處理海量視頻

在如今視頻內容爆炸的時代&#xff0c;無論是個人創作者還是企業團隊&#xff0c;都面臨著處理大量視頻的需求。而視頻尺寸過大往往會導致上傳緩慢、存儲空間不足等問題。為了解決這個問題&#xff0c;我們推出了一款強大的視頻批量剪輯工具&#xff0c;讓你輕松實現視頻尺寸批…

NXP實戰筆記(七):S32K3xx基于RTD-SDK在S32DS上配置ICU輸入捕獲

目錄 1、概述 2、輸入捕獲SDK配置 2.1、SAIC中斷方式 2.2、IPWM或者IPM 1、概述 輸入捕獲&#xff0c;可以抓取高電平時間、低電平時間、占空比、周期、邊沿檢測與回調函數、邊沿計數&#xff08;ABZ解碼&#xff09;、時間戳、喚醒中斷。 記錄一下根據Emios模塊實現上述部分…

Spring Cache框架使用教程,通過簡單且強大的方式在應用程序中使用緩存提高性能

Spring Cache Spring Cache 框架是 Spring 框架的一部分,它提供了一種簡單但功能強大的方式來在應用程序中實現緩存。下面是 Spring Cache 框架的一些好處: 性能提升: 使用緩存可以大大提高應用程序的性能,特別是對于那些需要頻繁訪問和計算的數據。通過緩存先前計算的結果…

【ARMv8M Cortex-M33 系列 8.1 -- RT-Thread 堆內存 檢查命令 free 實現及介紹】

文章目錄 RT-Thread 堆內存 檢查命令 free 實現及介紹rt_memory_info 函數驗證 RT-Thread 堆內存 檢查命令 free 實現及介紹 在RT-Thread系統中&#xff0c;通常可以通過rt_memory_info函數獲取當前的堆內存使用信息&#xff0c;然后你可以包裝這個函數來顯示剩余的堆空間。rt…

最全整理,軟件測試-Web頁面測試思路總結,13年經驗...

目錄&#xff1a;導讀 前言一、Python編程入門到精通二、接口自動化項目實戰三、Web自動化項目實戰四、App自動化項目實戰五、一線大廠簡歷六、測試開發DevOps體系七、常用自動化測試工具八、JMeter性能測試九、總結&#xff08;尾部小驚喜&#xff09; 前言 1、Web功能測試 …

Vim 模式切換 | 命令集

Vim 模式切換 | 命令集 vim 主要模式及切換一、正常/普通/命令模式1 光標相關操作命令集1.1 光標移動1.2 文字刪除1.3 粘貼和復制1.4 替換1.5 字符更改 二、插入模式2.1 插入模式和命令行模式相互切換 三、末行模式2.1 末行模式和命令行模式相互切換2.2 末行模式相關命令集 vim…

【EI會議征稿通知】第十屆機械工程、材料和自動化技術國際會議(MMEAT 2024)

2024年第十屆機械工程、材料和自動化技術國際會議(MMEAT 2024) 2024 10th International Conference on Mechanical Engineering,Materials and Automation Technology 2024年第十屆機械工程、材料和自動化技術國際會議( MMEAT 2024) 將于2024年06月21-23日在中國武漢舉行。MM…

【LeetCode每日一題】單調棧316去除重復字母

題目&#xff1a;去除重復字母 給你一個字符串 s &#xff0c;請你去除字符串中重復的字母&#xff0c;使得每個字母只出現一次。需保證 返回結果的字典序最小&#xff08;要求不能打亂其他字符的相對位置&#xff09;。 示例 1&#xff1a; 輸入&#xff1a;s “bcabc” 輸…