博客
关于我
解决SpringBoot jar包大小优化问题
阅读量:257 次
发布时间: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/

你可能感兴趣的文章
实习记录-1
查看>>
【图像去噪】基于全变分算法图像去噪matlab源码
查看>>
【TSP】基于混合粒子群求解TSP问题matlab源码
查看>>
445. 两数相加 II
查看>>
Ubuntu | cannot remove is a directory
查看>>
CentOS | 02 Centos7如何调节桌面的图标的大小?
查看>>
CentOS | 操作集合(持续更新...)
查看>>
bzoj 4999: This Problem Is Too Simple!
查看>>
ie http 中文传参 400错误
查看>>
JAVA_集合
查看>>
大数据项目总体流程
查看>>
mvc+webservice+存储过程分页
查看>>
查看SQL语句执行耗费的时间
查看>>
vue+element-ui实现显示隐藏密码
查看>>
vue中使用el-carousel组件实现图片轮播效果
查看>>
openlayer展示热力图
查看>>
mongodb中文档的特殊更新--upsert、remove(根据条件删除数据 )
查看>>
微信小程序中的自定义组件
查看>>
HTML表单跨行跨列操作
查看>>
Eclipse-更改Eclipse中SVN用户名及密码
查看>>