SpringBoot依賴和代碼分開打包的實(shí)現(xiàn)步驟
前言
在公司的項(xiàng)目中,一個(gè)SpringBoot工程可能就上百M(fèi)B,這時(shí)候當(dāng)線上網(wǎng)速不佳的時(shí)候,部署起來就十分的痛苦了。。經(jīng)常等好久才能上傳完畢,接下來我來教大家一個(gè)SpringBoot工程代碼和依賴分開打包的方法。這種方法將依賴和代碼分開打包,一般更新只有代碼修改,Pom文件是不會經(jīng)常改動的~
效果展示
分開打包前
足足有191MB
分開打包后
只剩3.5MB了
減負(fù)的效果拔群
創(chuàng)建新工程
工程結(jié)構(gòu)
我新建了一個(gè)SpringBoot工程,目錄結(jié)構(gòu)如下。
測試工程是否可用
就是一個(gè)非常簡單的工程,只有一個(gè)Controller,讓我們來啟動然后調(diào)用一下TestController里面的test方法
調(diào)用結(jié)果
調(diào)用結(jié)果是正常的,也通過MyBatis-plus讀取到了數(shù)據(jù)的內(nèi)容
分離依賴
target目錄結(jié)構(gòu)
當(dāng)我們運(yùn)行成功后,在項(xiàng)目的target目錄下,會自動給我們生成項(xiàng)目名-1.0-SNAPSHOT.jar文件,如圖一所示。如果沒有生成的話,大家可以點(diǎn)擊右側(cè)的Maven生成,如圖二所示。
打開文件拓展名
這里我們是生成了.jar文件的,那就進(jìn)入到下一步,將jar文件重命名成.zip文件,如果有同學(xué)沒打開文件擴(kuò)展名的選項(xiàng),可以在圖一所示的地方打開文件擴(kuò)展名選項(xiàng)即可。
修改文件拓展名
這個(gè)時(shí)候我們已經(jīng)將.jar改成.zip了,雙擊打開或者使用壓縮工具打開都可以。
如果改成zip報(bào)錯可以改成rar
如果打開時(shí)候提示報(bào)錯,可以將.zip換成.rar試試哦
壓縮包目錄
打開后的文件目錄如下圖所示
解壓出lib目錄
接著我們選擇第一個(gè)文件夾BOOT-INF,然后可以看到它下面有兩個(gè)二級文件夾,其中一個(gè)就是lib,這個(gè)就是我們想要的文件夾。我們可以雙擊打開看看里面存放的都是什么文件。
我們打開后發(fā)現(xiàn)里面都是依賴文件,所以這就是我們想要的依賴包
然后我們把這個(gè)lib依賴解壓出來,解壓位置隨意。
修改Pom文件
將lib文件夾解壓出來后,我們開始修改Pom文件,這個(gè)時(shí)候我們已經(jīng)將依賴分離出來了,我們只需要打包代碼即可。
所以我們修改Pom文件分兩種情況
情況一
在Pom文件下的build節(jié)點(diǎn)下已經(jīng)有pluginManagement節(jié)點(diǎn),找到下面這個(gè)節(jié)點(diǎn),將圖片紅框中的幾行復(fù)制進(jìn)去
情況二
在Pom文件下的build節(jié)點(diǎn)下還沒有pluginManagement節(jié)點(diǎn),直接將我下面提供的pluginManagement節(jié)點(diǎn)復(fù)制到build節(jié)點(diǎn)底下即可。
<pluginManagement> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>2.3.2.RELEASE</version> <configuration> <finalName>boot-template</finalName> <layout>ZIP</layout> <includeSystemScope>true</includeSystemScope> <executable>true</executable> <includes> <include> <groupId>nothing</groupId> <artifactId>nothing</artifactId> </include> </includes> </configuration> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions> </plugin> </plugins> </pluginManagement>
重新打包
接下來第一步先點(diǎn)擊右上方的加載Maven更改,或者使用快捷鍵Ctrl+shift+o,然后點(diǎn)擊右側(cè)Maven菜單下的生命周期里面的package即可
圖一是控制臺的輸出,圖二是打包后的文件,我們可以看到這次打包后只有132KB
測試jar包
我們接下來測試分離完后的jar包是否正常使用,我們將lib文件夾和jar包放在同一個(gè)目錄下面,然后打開一個(gè)cmd窗口,輸入下面命令–記得將IDEA里面的工程停了,不然會報(bào)端口被占用哦。
java -Dloader.path=./lib -jar boot-template.jar
命令解釋:-Dloader.path 用來指定lib存放位置,下面是運(yùn)行成功截圖~
測試接口
接著我們來測試接口功能是否正常,我們回到接口工具重新調(diào)用了一次test接口,發(fā)現(xiàn)返回的數(shù)據(jù)沒區(qū)別
在CMD里面我們也可以看到,連接MySQL也沒啥問題。到此本文結(jié)束,如有問題請可以在評論區(qū)發(fā)出來或者私信我哦~
備注
細(xì)心的小伙伴發(fā)現(xiàn),如果我們改了Pom文件要怎么辦呢?當(dāng)然是把之前加的那幾行去掉,然后重新解壓一次lib包即可
到此這篇關(guān)于SpringBoot依賴和代碼分開打包的實(shí)現(xiàn)步驟的文章就介紹到這了,更多相關(guān)SpringBoot依賴和代碼分開打包內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 將springboot項(xiàng)目生成可依賴的jar并引入到項(xiàng)目中的方法
- Spring?boot數(shù)據(jù)庫依賴詳解
- Springboot中依賴注入的三種方式詳解
- Spring?Boot?打包如何將依賴全部打進(jìn)去
- SpringBoot中修改依賴版本的方法
- Springboot pom項(xiàng)目間接依賴包版本與預(yù)期不符原因解決分析
- SpringBoot中的依賴管理詳解
- spring boot idea maven依賴找不到問題處理方法
- SpringBoot之核心依賴和自動配置方式
- SpringBoot將所有依賴(包括本地jar包)打包到項(xiàng)目
- SpringBoot結(jié)合Maven項(xiàng)目依賴版本沖突問題解決
- IDEA創(chuàng)建springboot依賴下載很慢的解決方法
相關(guān)文章
mybatis中實(shí)現(xiàn)枚舉自動轉(zhuǎn)換方法詳解
在使用mybatis的時(shí)候經(jīng)常會遇到枚舉類型的轉(zhuǎn)換,下面這篇文章主要給大家介紹了關(guān)于mybatis中實(shí)現(xiàn)枚舉自動轉(zhuǎn)換的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧。2017-08-08java中form以post、get方式提交數(shù)據(jù)中文亂碼問題總結(jié)
這篇文章主要介紹了java中form以post、get方式提交數(shù)據(jù)中文亂碼問題總結(jié),需要的朋友可以參考下2014-10-10java實(shí)現(xiàn)微信公眾號消息推送的方法詳解
這篇文章主要為大家詳細(xì)介紹了如何利用java實(shí)現(xiàn)微信公眾號消息推送的功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-10-10實(shí)戰(zhàn)指南:Java編寫Flink?SQL解決難題
想知道如何利用Java編寫Flink?SQL解決難題嗎?本指南將為您揭示最實(shí)用的技巧和策略,讓您輕松應(yīng)對挑戰(zhàn),跟著我們一起探索,讓Java和Flink?SQL成為您問題解決的得力助手!2023-12-12SpringBoot集成Spring security JWT實(shí)現(xiàn)接口權(quán)限認(rèn)證
這篇文章主要介紹了SpringBoot集成Spring security JWT實(shí)現(xiàn)接口權(quán)限認(rèn)證,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04java springmvc實(shí)現(xiàn)驗(yàn)證碼功能
這篇文章主要為大家詳細(xì)介紹了java springmvc實(shí)現(xiàn)驗(yàn)證碼功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-11-11