來源:csdn.net/weixin_39872123/article/details/111036706
# 前言
SpringBoot部署起來雖然簡單,如果伺服器部署在公司內網,速度還行,但是如果部署在公網(阿裏雲等雲伺服器上),部署起來實在頭疼:編譯出來的 Jar 包很大,如果工程引入了許多開源元件(SpringCloud等),那就更大了。
這個時候如果想要對線上執行工程有一些微調,則非常痛苦
# 瘦身前的Jar包
Tomcat在部署Web工程的時候,可以進行增量更新,SpringBoot也是可以的~
SpringBoot編譯出來的Jar包中,磁盤占用大的,是一些外部依賴庫(jar包),
例如:
進入計畫工程根目錄,執行 mvn clean install 命令,得到的Jar包,用壓縮軟體開啟,目錄結構如下:
# 解決方法
步驟1: 正常編譯JAR包,解壓出lib資料夾
POM檔如下:
進入計畫根目錄,執行命令:mvn clean install
將編譯後的Jar包解壓,拷貝 BOOT-INF 目錄下的lib資料夾 到目標路徑;
步驟2: 修改pom.xml配置,編譯出不帶 lib 資料夾的Jar包
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<main class>com.johnnian.App</main class>
<layout>ZIP</layout>
<includes>
<include>
<groupId>nothing</groupId>
<artifactId>nothing</artifactId>
</include>
</includes>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
<plugins>
<build>
配置完成後,再次執行編譯:mvn clean install
生成的 Jar 包體積明顯變小,如下所示, 外部的 jar 包已經不會被引入了:
步驟3: 執行編譯後的Jar包
將步驟1 解壓出來的lib資料夾、步驟2編譯的jar包放在同一個目錄, 執行下面命令:
或者在maven中輸入一下命令匯出需要用到的jar包
備註:
將/path/to/改成實際的路徑。-Dloader.path=lib資料夾路徑 最終目錄檔結構是:
說明
1、通常,一個工程計畫架構確定後,引入的jar包基本上不會變,改變的大部份是業務邏輯;
2、後面如果需要變更業務邏輯,只需要輕量地編譯工程,大大提高計畫部署的效率。
熱門推薦