SpringBoot依賴和代碼分開打包的實現(xiàn)步驟
前言
在公司的項目中,一個SpringBoot工程可能就上百MB,這時候當線上網(wǎng)速不佳的時候,部署起來就十分的痛苦了。。經(jīng)常等好久才能上傳完畢,接下來我來教大家一個SpringBoot工程代碼和依賴分開打包的方法。這種方法將依賴和代碼分開打包,一般更新只有代碼修改,Pom文件是不會經(jīng)常改動的~
效果展示
分開打包前
足足有191MB

分開打包后
只剩3.5MB了

減負的效果拔群
創(chuàng)建新工程
工程結構
我新建了一個SpringBoot工程,目錄結構如下。

測試工程是否可用
就是一個非常簡單的工程,只有一個Controller,讓我們來啟動然后調(diào)用一下TestController里面的test方法

調(diào)用結果
調(diào)用結果是正常的,也通過MyBatis-plus讀取到了數(shù)據(jù)的內(nèi)容

分離依賴
target目錄結構
當我們運行成功后,在項目的target目錄下,會自動給我們生成項目名-1.0-SNAPSHOT.jar文件,如圖一所示。如果沒有生成的話,大家可以點擊右側的Maven生成,如圖二所示。


打開文件拓展名
這里我們是生成了.jar文件的,那就進入到下一步,將jar文件重命名成.zip文件,如果有同學沒打開文件擴展名的選項,可以在圖一所示的地方打開文件擴展名選項即可。

修改文件拓展名
這個時候我們已經(jīng)將.jar改成.zip了,雙擊打開或者使用壓縮工具打開都可以。

如果改成zip報錯可以改成rar
如果打開時候提示報錯,可以將.zip換成.rar試試哦

壓縮包目錄
打開后的文件目錄如下圖所示

解壓出lib目錄
接著我們選擇第一個文件夾BOOT-INF,然后可以看到它下面有兩個二級文件夾,其中一個就是lib,這個就是我們想要的文件夾。我們可以雙擊打開看看里面存放的都是什么文件。

我們打開后發(fā)現(xiàn)里面都是依賴文件,所以這就是我們想要的依賴包

然后我們把這個lib依賴解壓出來,解壓位置隨意。
修改Pom文件
將lib文件夾解壓出來后,我們開始修改Pom文件,這個時候我們已經(jīng)將依賴分離出來了,我們只需要打包代碼即可。
所以我們修改Pom文件分兩種情況
情況一
在Pom文件下的build節(jié)點下已經(jīng)有pluginManagement節(jié)點,找到下面這個節(jié)點,將圖片紅框中的幾行復制進去

情況二
在Pom文件下的build節(jié)點下還沒有pluginManagement節(jié)點,直接將我下面提供的pluginManagement節(jié)點復制到build節(jié)點底下即可。

<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>
重新打包
接下來第一步先點擊右上方的加載Maven更改,或者使用快捷鍵Ctrl+shift+o,然后點擊右側Maven菜單下的生命周期里面的package即可

圖一是控制臺的輸出,圖二是打包后的文件,我們可以看到這次打包后只有132KB


測試jar包
我們接下來測試分離完后的jar包是否正常使用,我們將lib文件夾和jar包放在同一個目錄下面,然后打開一個cmd窗口,輸入下面命令–記得將IDEA里面的工程停了,不然會報端口被占用哦。
java -Dloader.path=./lib -jar boot-template.jar
命令解釋:-Dloader.path 用來指定lib存放位置,下面是運行成功截圖~

測試接口
接著我們來測試接口功能是否正常,我們回到接口工具重新調(diào)用了一次test接口,發(fā)現(xiàn)返回的數(shù)據(jù)沒區(qū)別

在CMD里面我們也可以看到,連接MySQL也沒啥問題。到此本文結束,如有問題請可以在評論區(qū)發(fā)出來或者私信我哦~

備注
細心的小伙伴發(fā)現(xiàn),如果我們改了Pom文件要怎么辦呢?當然是把之前加的那幾行去掉,然后重新解壓一次lib包即可
到此這篇關于SpringBoot依賴和代碼分開打包的實現(xiàn)步驟的文章就介紹到這了,更多相關SpringBoot依賴和代碼分開打包內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
- 將springboot項目生成可依賴的jar并引入到項目中的方法
- Spring?boot數(shù)據(jù)庫依賴詳解
- Springboot中依賴注入的三種方式詳解
- Spring?Boot?打包如何將依賴全部打進去
- SpringBoot中修改依賴版本的方法
- Springboot pom項目間接依賴包版本與預期不符原因解決分析
- SpringBoot中的依賴管理詳解
- spring boot idea maven依賴找不到問題處理方法
- SpringBoot之核心依賴和自動配置方式
- SpringBoot將所有依賴(包括本地jar包)打包到項目
- SpringBoot結合Maven項目依賴版本沖突問題解決
- IDEA創(chuàng)建springboot依賴下載很慢的解決方法
相關文章
java中form以post、get方式提交數(shù)據(jù)中文亂碼問題總結
這篇文章主要介紹了java中form以post、get方式提交數(shù)據(jù)中文亂碼問題總結,需要的朋友可以參考下2014-10-10
實戰(zhàn)指南:Java編寫Flink?SQL解決難題
想知道如何利用Java編寫Flink?SQL解決難題嗎?本指南將為您揭示最實用的技巧和策略,讓您輕松應對挑戰(zhàn),跟著我們一起探索,讓Java和Flink?SQL成為您問題解決的得力助手!2023-12-12
SpringBoot集成Spring security JWT實現(xiàn)接口權限認證
這篇文章主要介紹了SpringBoot集成Spring security JWT實現(xiàn)接口權限認證,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-04-04

