燃燒我的卡路里——Spring boot項目jar包瘦身


Spring boot項目由於使用了太多依賴包,導致jar包過大,下面使用Spring boot ProperitiesLauncher加載器,從外部指定路徑加載三方依賴jar包,達到項目jar包瘦身的目的

Spring boot jar包瘦身的便利性

將三方依賴jar包從打包的項目中移除有如下好處

  • 縮減項目jar包大小,便於網絡傳輸。
  • 對於不經常更新的線上項目,由於三方jar包出現的安全問題(例如:fastjson多個版本被報安全問題),只需替換相關依賴jar包,無需重新發版,走提測發版流程。
  • 對於需要部署多套線上環境的項目,不同環境可能依賴不同jar包,不同環境使用各自所需jar包即可,無需全部打包到項目中。例如:對接運營商4a系統,各省4a服務提供商和版本各不相同,將4a相關依賴從項目中移除,各省環境使用各自jar包即可。

具體步驟

使用spring-boot-maven-plugin組件

maven配置如下:

<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>${spring.boot.version}</version>
<configuration>
<mainClass>com.xxx.App</mainClass>  <!--spring boot啓動類-->
<layout>ZIP</layout>  <!--使用ProperitiesLauncher加載器-->
<includes>
<include>
<groupId>nothing</groupId>  <!--設置nothing表示打包時不將依賴jar包打包進來-->
<artifactId>nothing</artifactId>
</include>
</includes>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>

jar包啓動方式

將依賴jar包輸出到指定目錄中

mvn dependency:copy-dependencies -DoutputDirectory=thirdJars

以上命令將三方依賴jar包輸出到thirdJars目錄中

使用:

-Dloader.path

指定啓動時加載的依賴jar包路徑,在啓動時ProperitiesLauncher會將相關jar包加載到進程中,三方jar包中的日誌等內容可以在java進程中輸出。

exp:

java -Xms4g -Xmx8g -XX:MetaspaceSize=128M -XX:+PrintGCApplicationStoppedTime -XX:+HeapDumpOnOutOfMemoryError -Dloader.path=lib -jar manage.jar

至此項目jar包瘦身完畢。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章