Maven运行时分析多余依赖问题

news/2024/10/18 16:45:55/

下载 loosejar 库

https://github.com/kyrill007/loosejar/releases 官方文档

以 IntelliJ IDEA 开发工具为例

1. 使用IDE 打开项目工程

2. Edit Configurations ...

如图:

增加 javaagent 配置

如图:

-javaagent:${保存路径}/loosejar-1.1.0.jar

运行SpringBoot Application main 方法

可以在控制台打印日志:

 

[loosejar]: loosejar analysis is registered to run on JVM shutdown. [loosejar]: Registering loosejar as a JMX service... [loosejar]: Registered loosejar as a JMX service: [com.googlecode.loosejar:type=LooseJarMBean]

如图:

使用JAVA jconsole 来分析

1、cd $JAVA_HOME/bin/

2、open jconsole

3、选择监控进程,点击连接

如图:

选择不安全的连接

如图:

等待服务启动完成

依次点击下图: 1 --> 2 --> 3

MBean -> com.googlecode.loosejar:LooseJarMBean:操作:summary -> 点击summary

获取运行时分析结果如图:

弹出分析结果如图:

拷贝返回值内容到本地文本文件

搜索关键字: Utilization: 0.00%

例如找到如下内容

Jar: /Users/kevin/.m2/repository/org/springframework/boot/spring-boot-starter-data-redis/2.0.8.RELEASE/spring-boot-starter-data-redis-2.0.8.RELEASE.jar
Utilization: 0.00% - loaded 0 of 0 classes.

根据 pom 中配置依赖和文本文件中查询使用率

Utilization/使用率:当使用率为0.00%则“或许可以”将该依赖去掉。

分析实现原理:

基于运行时执行逻辑实现,运行时未执行到的代码将会被统计出未使用的情况。

备注:由于该特性是基于代码运行值的情况进行分析,相比启动编译时分析可以或得更精准的结果,但需要注意的时,它的分析是基于你的代码运行过的程序来确定下来的,所以如果代码中某个依赖库代码在运行时没有被执行到,可能会导致分析使用率为零的情况。


http://www.ppmy.cn/news/1540037.html

相关文章

vue3使用indexDB缓存静态资源

indexDB IndexedDB 是一个浏览器内建的数据库,它可以存放对象格式的数据,默认情况下,浏览器会将自身所在的硬盘位置剩余容量全部作为indexedDB的存储容量 indexDB的使用 1.初始化数据库 注:数据库的相关操作都是异步的 const request i…

淘宝商品 API 接口怎样去使用?

​​​​​​​ 在当今数字化商业时代,淘宝作为全球最大的电子商务平台之一,拥有海量的商品资源和庞大的用户群体。对于开发者和企业来说,淘宝商品 API 接口提供了一种强大的工具,可以实现对淘宝商品数据的高效获取和利用…

基于深度学习的对抗攻击的防御

基于深度学习的对抗攻击防御是一项重要的研究方向,旨在提高模型在面对对抗样本时的鲁棒性和安全性。对抗攻击通常通过向输入数据中添加微小扰动,使得深度学习模型做出错误的预测。为了应对这些攻击,研究人员提出了多种防御策略。 1. 对抗训练…

cv2.imshow和plt.imshow的区别

同样一张灰度图,plt.imshow显示的图片和cv2.imshow显示的图片不一致,这是因为cv2.imshow和plt.imshow在处理图像显示时的默认行为有所不同。 # matplotlib绘制 plt.imshow(image, "gray") plt.show()# cv2绘制 cv2.imshow("img", i…

学习笔记之ifconfig看不到ens33的解决方法和普通用户sudo命令的配置

1.遇到的问题:使用finalshell与centos进行连接时,发现连接不上,在centos命令行敲下ifconfig发现ens33消失了。(ens33里面包含了我们远程连接所需的ip地址) 解决方法:在centos命令窗口依次输入 systemctl s…

Excel中Ctrl+e的用法

重点:想要使用ctrle,前提是整合或拆分后的结果放置的单元格必须和被提取信息的单元格相邻,且被提取信息的单元格也必须相连。 下图为错误示例 这样则可以使用ctrle 1、信息整合 2、提取信息 3、添加符号 4、信息顺序调换 5、数字提取 crtle还…

精准监控,高效分析 —— 淘宝API助力商家实现商品信息精细化管理

在现代电商领域,商品信息的精准监控和高效分析对于商家来说至关重要。淘宝API(Application Programming Interface)为商家提供了丰富的工具,使他们能够实现对商品信息的精细化管理。通过API,商家可以获取商品的详细数据…

【进阶OpenCV】 (18)-- Dlib库 --人脸关键点定位

文章目录 人脸关键点定位一、作用二、原理三、代码实现1. 构造人脸检测器2. 载入模型(加载预测器)3. 获取关键点4. 显示图像5. 完整代码 总结 人脸关键点定位 在dlib库中,有shape_predictor_68_face_landmarks.dat预测器,这是一个…