SpringBoot jar包大小優(yōu)化問題及解決
這里提供兩種解決方案
- 清理 Maven 依賴中無用依賴( Unused declared dependencies )。
- 打包時排除所有 jar 依賴改為運行時外部引用。
方案一:清理Maven依賴中無用依賴
可以使用 mvn dependency:analyze 命令對項目進(jìn)行分析,并以此作為參考來剔除無用依賴。

下面對圖中的 Used undeclared dependencies found 和 Unused declared dependencies found 作出解釋
Used undeclared dependencies found
意為項目中有些我們使用到的 jar 包依賴并沒有在 pom 文件中顯示聲明,這意味著這些包是通過引用傳遞 1 而來的。
這個時候我們可以選擇顯示聲明他們。
Unused declared dependencies found
意為項目中存在顯示聲明的依賴我們在實際的應(yīng)用中并沒有使用到。我們可以將他們從 pom 文件中剔除。
注意:
這里雖然說實際代碼中沒有用到,但并不意味著一定沒有用到,這里只是說 main/java 和 test 中沒有使用到,具體剔除方案還需要自己衡量,這個結(jié)果只能作為參照。
方案二:外部引用 jar 包(立竿見影)
可有效縮減 jar 包大小,進(jìn)而解決 Jar 包太大引發(fā)的打包慢,上傳慢等問題。
1. 將原本 jar 包解壓縮找到 BOOT-INF 下的 lib 目錄考出,該目錄下包含所需所有 jar包。

2. 在 pom 中 spring-boot-maven-plugin 打包插件設(shè)置打包時排除所有 jar 包
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<fork>true</fork>
<layout>ZIP</layout>
<includes>
<include>
<!-- 排除所有Jar -->
<groupId>nothing</groupId>
<artifactId>nothing</artifactId>
</include>
</includes>
</configuration>
</plugin>此時打包,會發(fā)現(xiàn) jar 包大小銳減,將 jar 包與 lib 放在同一目錄下執(zhí)行命令
java -Dloader.path="lib/" -jar yourjarname.jar 即可。
引用傳遞意為:我們通過 pom 文件聲明了依賴的 jar 包 A 同時包 A 引用了 jar 包 B 即 A.jar -> B.jar 此時我們可以直接使用 B包中的代碼但我們卻沒有顯示聲明引用 B包
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
使用Java實現(xiàn)Excel轉(zhuǎn)PDF的示例詳解
在實際的開發(fā)過程中,我們常常會遇到需要將 Excel 文件轉(zhuǎn)換為 PDF 文件的需求,本文為大家介紹一種Java中的常見實現(xiàn)方式,需要的可以參考一下2025-02-02
@RequestMapping 如何使用@PathVariable 從URI中獲取參數(shù)
這篇文章主要介紹了@RequestMapping 如何使用@PathVariable 從URI中獲取參數(shù)的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-08-08

