Java Dependence Analysis(Java静态依赖分析)

该博客介绍了Java依赖分析工具,用于弥补Java 8以上版本jdeps命令在方法级别检查的不足。工具能详细检查成员变量类型、方法参数、返回值、异常捕获等内容,帮助在依赖升级后及时发现潜在问题。通过环境变量控制,用户可以选择性输出报告,并可将结果输出为JSON文件以进行可视化查看。配合jdeps使用,能有效提升项目依赖管理的准确性。
摘要由CSDN通过智能技术生成

前言

在Java项目项目中,经常会面临依赖升级,依赖变更的情况。通常情况下,无法做到全面的检查,java8以上版本自带的jdeps命令可以对依赖进行分析,但受限于JDK的版本,jdeps功能有一定差异,虽然可以检测到类依赖确实,但通常无法检查到方法的缺失。此工具就是为了全面的解决依赖问题,可以提供成员变量类型、方法参数、方法返回值、方法异常捕获、字节码指令中涉及到类和方法的内容的全面检查
最终通过该工具与jdeps工具的配合,在对项目进行依赖升级后,可以及早的发现项目风险。比如:在处理某一依赖漏洞,只针对某一个依赖升级,关联依赖无法升级的情况。

命令行工具

使用Java8以上版本自带的jdeps也可以进行依赖检查,但是没有那么细致。
在实际使用中,可以将jdeps与该工具协同使用。
JDA源代码地址:https://github.com/lipangeng/Java-Dependence-Analysis

此工具为一个jar文件,通过java -jar的方式运行,并且将异常信息输出至控制台。
示例命令 JDA_DEBUG=false JDA_FILTER='com.*' java -jar jda-0.0.1.jar /Users/lipangeng/Downloads/app-upload/WEB-INF/classes /Users/lipangeng/Downloads/app-upload/WEB-INF/lib/*
环境变量 JDA_DEBUG:控制是否打开Debug
环境变量 JDA_FILTER: Java的正则控制,如果缺失的类满足该正则条件,则会在最后打印报告时打印出来,不满足的条件的一律不打印。
环境变量 JDA_OUT: 默认为result.json,会将结果输出为json文件,并且可以在可视化界面中打开该文件,进行可视化查看,可以通过https://jda.lipg.cn访问。
命令行参数: 为classpath,可以为class文件目录,可以为jar文件,可以以/*结尾,加载目录下全部的jar/zip。

运行效果

jdeps 运行效果
JDA运行效果
JDA可视化效果

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值