原始需求:
老大让我统计一下 大家修改频率较高的公共类,比如一些常量定义类
目前进展:
- 网上搜索到了jdeps, 但是不太会驾驭。查了几个类,代码里import的类数量比打印出来的要多,不明白为啥会缺
- 通过jdeps导出的 dot 文件,转成图之后,中间的箭头一大片都是黑的(因为被人引用太多了)…… 无法根据箭头连线看清具体的关系,不方便跟老大对线
- 尝试对 jdeps导出的内容直接进行过滤 + 排序 + 统计出现次数,希望通过这个方式查看类被引用的次数。但是跟预期的结果有偏差
求助一下大佬们有没有好的解题思路 谢谢各位
你已经提到查看提交记录来统计修改频率。
至于使用频率,这个肯定要分析整个项目里每一个java文件,统计每个类中字段和方法的使用次数。
你可以分析java文件,构建抽象语法树,然后分析语法树中每一个节点,梳理出调用关系啥的,不过这应该也是个大工程。这个我看到有个java库:javaparser。
一个使用javaparser打印分析结果的例子:
或者找现成的工具,比如idea里边,你在代码的字段,方法,变量上右键,有个find usage功能,可以查看字段和方法的引用情况,这个应该就是你想要的,你可以了解一下idea的插件,看有没有提供获取find usage的接口。
jadx中也有类似功能,代码应该是jadx.gui.ui.UsageDialog#performSearch
使用javaparser好像就可以完成,我这个在accessMap中保存了字段和方法被引用的次数。
需要项目源码目录,以及依赖的所有外部jar包目录,外部jar可以先用maven打包,把所有jar整合到一起。