燃烧我的卡路里——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包瘦身完毕。

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