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

分開打包后
只剩3.5MB了

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

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

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

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


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

修改文件拓展名
這個時候我們已經(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é)點,將圖片紅框中的幾行復(fù)制進去

情況二
在Pom文件下的build節(jié)點下還沒有pluginManagement節(jié)點,直接將我下面提供的pluginManagement節(jié)點復(fù)制到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,然后點擊右側(cè)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也沒啥問題。到此本文結(jié)束,如有問題請可以在評論區(qū)發(fā)出來或者私信我哦~

備注
細心的小伙伴發(fā)現(xiàn),如果我們改了Pom文件要怎么辦呢?當(dāng)然是把之前加的那幾行去掉,然后重新解壓一次lib包即可
到此這篇關(guān)于SpringBoot依賴和代碼分開打包的實現(xiàn)步驟的文章就介紹到這了,更多相關(guān)SpringBoot依賴和代碼分開打包內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 將springboot項目生成可依賴的jar并引入到項目中的方法
- Spring?boot數(shù)據(jù)庫依賴詳解
- Springboot中依賴注入的三種方式詳解
- Spring?Boot?打包如何將依賴全部打進去
- SpringBoot中修改依賴版本的方法
- Springboot pom項目間接依賴包版本與預(yù)期不符原因解決分析
- SpringBoot中的依賴管理詳解
- spring boot idea maven依賴找不到問題處理方法
- SpringBoot之核心依賴和自動配置方式
- SpringBoot將所有依賴(包括本地jar包)打包到項目
- SpringBoot結(jié)合Maven項目依賴版本沖突問題解決
- IDEA創(chuàng)建springboot依賴下載很慢的解決方法
相關(guān)文章
代理模式:JAVA靜態(tài)代理和動態(tài)代理的實例和實現(xiàn)詳解
這篇文章主要給大家介紹了關(guān)于Java靜態(tài)代理和動態(tài)代理的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-08-08
Spring Boot中Elasticsearch的連接配置原理與使用詳解
在Spring Boot中,我們可以通過Elasticsearch實現(xiàn)對數(shù)據(jù)的搜索和分析,本文將介紹Spring Boot中Elasticsearch的連接配置、原理和使用方法,感興趣的可以了解一下2023-09-09
SpringBoot一個接口多個實現(xiàn)類的調(diào)用方式總結(jié)
這篇文章主要介紹了SpringBoot一個接口多個實現(xiàn)類的調(diào)用方式,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2024-01-01
java中 IO 常用IO操作類繼承結(jié)構(gòu)分析
本篇文章小編為大家介紹,java中 IO 常用IO操作類繼承結(jié)構(gòu)分析。需要的朋友參考下2013-04-04
通過System.getProperty配置JVM系統(tǒng)屬性
這篇文章主要介紹了通過System.getProperty配置JVM系統(tǒng)屬性,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-10-10
SpringBoot統(tǒng)一數(shù)據(jù)返回的方法實現(xiàn)
在前后端交互過程中,為了便于數(shù)據(jù)處理,后端數(shù)據(jù)需要進行統(tǒng)一封裝返回給前端,這種做法不僅方便前后端溝通,降低了溝通成本,還有助于項目的統(tǒng)一維護和后端技術(shù)部門的規(guī)范制定,本文就來介紹一下2024-10-10

