我把SpringBoot專案從18.18M瘦身到0.18M,部署起來真省事!

程式設計師的成長之路發表於2020-04-16


閱讀本文大概需要 2 分鐘。

作者:yjgithub
原文:


一、前言

SpringBoot部署起來雖然簡單,如果伺服器部署在公司內網,速度還行,但是如果部署在公網(阿里雲等雲伺服器上),部署起來實在頭疼:編譯出來的 Jar 包很大,如果工程引入了許多開源元件(SpringCloud等),那就更大了。

這個時候如果想要對線上執行工程有一些微調,則非常痛苦

二、瘦身前的Jar包

Tomcat在部署Web工程的時候,可以進行增量更新,SpringBoot也是可以的~

SpringBoot編譯出來的Jar包中,磁碟佔用大的,是一些外部依賴庫(jar包),
例如:

進入專案工程根目錄,執行 mvn clean install 命令,得到的Jar包,用壓縮軟體開啟,目錄結構如下:
我把SpringBoot專案從18.18M瘦身到0.18M,部署起來真省事!
整個Jar包 18.18 MB, 但是 BOOT-INF/lib 就佔用了將近 18 MB: 
我把SpringBoot專案從18.18M瘦身到0.18M,部署起來真省事!
三、解決方法

步驟1: 正常編譯JAR包,解壓出lib資料夾

POM檔案如下:

我把SpringBoot專案從18.18M瘦身到0.18M,部署起來真省事!
進入專案根目錄,執行命令:mvn clean install

將編譯後的Jar包解壓,複製 BOOT-INF 目錄下的lib資料夾 到目標路徑;

步驟2: 修改pom.xml配置,編譯出不帶 lib 資料夾的Jar包


我把SpringBoot專案從18.18M瘦身到0.18M,部署起來真省事!
      
配置完成後,再次執行編譯:mvn clean install

生成的 Jar 包體積明顯變小,如下所示, 外部的 jar 包已經不會被引入了: 
我把SpringBoot專案從18.18M瘦身到0.18M,部署起來真省事!
步驟3: 執行編譯後的Jar包

將步驟1解壓出來的lib資料夾,步驟2編譯的jar包放在同一個目錄, 執行下面命令:


我把SpringBoot專案從18.18M瘦身到0.18M,部署起來真省事!

或者在maven中輸入一下命令匯出需要用到的jar包


我把SpringBoot專案從18.18M瘦身到0.18M,部署起來真省事!

備註:

將/path/to/改成實際的路徑。 
-Dloader.path=lib資料夾路徑 

最終目錄檔案結構是:
我把SpringBoot專案從18.18M瘦身到0.18M,部署起來真省事!

說明

1、通常,一個工程專案架構確定後,引入的jar包基本上不會變,改變的大部分是業務邏輯;

2、後面如果需要變更業務邏輯,只需要輕量地編譯工程,大大提高專案部署的效率。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69900357/viewspace-2686554/,如需轉載,請註明出處,否則將追究法律責任。

相關文章