Adrninistrator
Adrninistrator
在指定的jar包列表的第一个目录或文件所在目录,查看生成的xxx-annotation.txt,看一下shade.kotlin.SinceKotlin相关的内容,是不是指定的jar包里有重复的类,这样会导致方法重复处理,方法上的注解也会重复记录 如果是这样的话,我修改一下写入注解的处理,忽略重复的数据
等我改一个版本,把重复注解的信息打印出来,后面看是不是把重复注解改成忽略掉
看下生成的文件里这个注解的属性有多少字节,现在使用的MySQL对应数据库表字段类型是TEXT,如果还不够长的话,后面版本在写入前对超长的属性做下截取,一般很长的注解属性也不需要使用
如果着急用的话可以自己先修改下代码,用gradlew jar命令可以打包。晚上有空了我会更新下版本。
0.7.2的版本需要使用java-callgraph2:0.1.8,漏提交了,昨晚想起来这个问题了,今天晚上再重新提交一下,感谢提醒
已经重新提交相关的代码了
这里是出现了循环调用了哈,在生成输出文件时会进行特殊处理,不然生成的文件也会循环输出不会停止了 上面生成结果的!cycle[0]!就代表循环调用了第0个方法,即“[0]#test.call_graph.method_call.TestMCCallee:test_func_1” 相关说明在[https://github.com/Adrninistrator/java-all-call-graph/blob/main/other_functions.md#13-%E5%A4%84%E7%90%86%E5%BE%AA%E7%8E%AF%E6%96%B9%E6%B3%95%E8%B0%83%E7%94%A8](https://github.com/Adrninistrator/java-all-call-graph/blob/main/other_functions.md#13-%E5%A4%84%E7%90%86%E5%BE%AA%E7%8E%AF%E6%96%B9%E6%B3%95%E8%B0%83%E7%94%A8)
> > 这里是出现了循环调用了哈,在生成输出文件时会进行特殊处理,不然生成的文件也会循环输出不会停止了 > > 上面生成结果的!cycle[0]!就代表循环调用了第0个方法,即“[0]#test.call_graph.method_call.TestMCCallee:test_func_1” > > 相关说明在https://github.com/Adrninistrator/java-all-call-graph/blob/main/other_functions.md#13-%E5%A4%84%E7%90%86%E5%BE%AA%E7%8E%AF%E6%96%B9%E6%B3%95%E8%B0%83%E7%94%A8 > > 是的,循环应该要退出来,只是另外一条路径缺失了。如果另外一条路径也能显示应该会更好些,而且这里路径没有循环 test_func_1->test_func_4->**test_func_3->test_func_5** 试了一下,确实存在这个问题,后面的版本我优化一下
> 如下场景存在循环调用时的向下调用链,没有test_func_5(); public static void test_func_1() { test_func_4(); } > > ``` > public static void test_func_2() { > test_func_1(); > } > > public static void test_func_3() { >...
每个方法都生成到结果里的话,确实会很多,用起来不方便 目前主要的使用场景: - 向下的调用链 查找一个入口方法往下,执行了哪些关键的重要操作,比较数据库调用,RPC操作,最后可以用来生成时序图 - 向上的调用链 查找一个被调用方法被哪些方法调用,被调用方法有修改时,查找相关有调用的方法,用于确定测试范围