博客
关于我
解决SpringBoot jar包大小优化问题
阅读量:258 次
发布时间:2019-03-01

本文共 1415 字,大约阅读时间需要 4 分钟。

这里提供两种解决方案:

  1. 清理 Maven 依赖中无用依赖( Unused declared dependencies )。
  2. 打包时排除所有 jar 依赖改为运行时外部引用。

方案一:清理Maven依赖中无用依赖

可以使用 mvn dependency:analyze 命令对项目进行分析,并以此作为参考来剔除无用依赖。

在这里插入图片描述

下面对图中的 Used undeclared dependencies foundUnused declared dependencies found 作出解释

Used undeclared dependencies found

意为项目中有些我们使用到的 jar 包依赖并没有在 pom 文件中显示声明,这意味着这些包是通过引用传递 而来的。

这个时候我们可以选择显示声明他们。

Unused declared dependencies found

意为项目中存在显示声明的依赖我们在实际的应用中并没有使用到。我们可以将他们从 pom 文件中剔除。

注意: 这里虽然说实际代码中没有用到,但并不意味着一定没有用到,这里只是说 main/java 和 test 中没有使用到,具体剔除方案还需要自己衡量,这个结果只能作为参照。

方案二:外部引用 jar 包(立竿见影)

可有效缩减 jar 包大小,进而解决 Jar 包太大引发的打包慢,上传慢等问题。

  1. 将原本 jar 包解压缩找到 BOOT-INF 下的 lib 目录考出,该目录下包含所需所有 jar包。

    在这里插入图片描述

  2. 在 pom 中 spring-boot-maven-plugin 打包插件设置打包时排除所有 jar 包

org.springframework.boot
spring-boot-maven-plugin
true
ZIP
nothing
nothing
  1. 此时打包,会发现 jar 包大小锐减,将 jar 包与 lib 放在同一目录下执行命令
    java -Dloader.path="lib/" -jar yourjarname.jar 即可。

最后欢迎关注公众号“白丁妄语”

在这里插入图片描述


  1. 引用传递意为:我们通过 pom 文件声明了依赖的 jar 包 A 同时包 A 引用了 jar 包 B 即 A.jar -> B.jar 此时我们可以直接使用 B包中的代码但我们却没有显示声明引用 B包

转载地址:http://oqga.baihongyu.com/

你可能感兴趣的文章
limit的两种使用方式 && offset
查看>>
Tips - 0712
查看>>
iOS-编译报错duplicate symbol _OBJC_IVAR
查看>>
animation跑马灯动画实现两种方法
查看>>
计时器模仿地球绕太阳圆周运动
查看>>
斩获23项冠军,日均调用破万亿!百度交出年度AI成绩单:语音语言领衔技术突破,国产自研成大趋势...
查看>>
一只53万!波士顿动力网红机器狗开售,充电器价格1万多!
查看>>
对曲线的坐标的积分的斯托克斯公式+参数定积分法
查看>>
幂函数
查看>>
200118堆排序(Heap Sort)
查看>>
剑指Offer--Java--字符串中第一个只出现一次的字符
查看>>
阶乘分解 (算法竞赛进阶指南 P136,质因数分解)
查看>>
2021-04-13 Python 随机列表、集合、元组、字典的生成和排序
查看>>
hslogic_基于FPGA的混沌加密
查看>>
SAR图像超分辨技术
查看>>
fpga工程师笔试题
查看>>
神经网络遗传算法函数极值寻优-非线性函数极值
查看>>
emd分解matlab程序
查看>>
Java版取色器(7)——界面简单装饰
查看>>
Problem F: 零起点学算法106——首字母变大写
查看>>