Adrninistrator / java-all-call-graph

Generate all call graph for Java Code.
Apache License 2.0
438 stars 111 forks source link

请问下,项目有Controller ,Service(interface) , Imp(实现类) , 怎么配置才能获取到Imp的方法链路 #51

Open liangchenhireez opened 1 year ago

Adrninistrator commented 1 year ago

需要分析哪个类,就在在配置文件 method_class_4caller.properties 里配置需要分析的类的方法,Controller、Service的接口或Impl类都可以(以后的版本可能会有调整,现在不用考虑)再执行RunnerGenAllGraph4Caller类就可以(需要行执行RunnerWriteDb类写入数据库)

liangchenhireez commented 1 year ago

需要分析哪个类,就在在配置文件 method_class_4caller.properties 里配置需要分析的类的方法,Controller、Service的接口或Impl类都可以(以后的版本可能会有调整,现在不用考虑)再执行RunnerGenAllGraph4Caller类就可以(需要行执行RunnerWriteDb类写入数据库)

在执行RunnerWriteDb mysql的时候 出现 Duplicate entry 'FMnWiyFV9DFSPvHPqPjKog==#072-0' for key 'jacg_spring_controller_test_app.PRIMARY'

Adrninistrator commented 1 year ago

有一个提示,把 db.insert.batch.size 参数值设置为1再执行,会显示出现重复的具体数据,会显示是哪个方法有重复,再在jar包所在的目录下找到 method_annotation.txt 文件,在里面看一下对应的方法的信息,用方法搜索一下,看一下这个方法是不是有多条记录  

easonzheng @.***

 

liangchenhireez commented 1 year ago

有一个提示,把 db.insert.batch.size 参数值设置为1再执行,会显示出现重复的具体数据,会显示是哪个方法有重复,再在jar包所在的目录下找到 method_annotation.txt 文件,在里面看一下对应的方法的信息,用方法搜索一下,看一下这个方法是不是有多条记录   easonzheng @.***  

请问下哪里查看失败的任务 14:47:51.906 [main] ERROR c.a.jacg.runner.base.AbstractRunner - RunnerWriteDb 执行失败 14:47:51.906 [main] INFO c.a.jacg.dboper.DbOperator - [1] 关闭数据源 14:47:51.906 [main] INFO c.alibaba.druid.pool.DruidDataSource - {dataSource-1} closing ... 14:47:51.964 [main] INFO c.alibaba.druid.pool.DruidDataSource - {dataSource-1} closed 14:47:51.965 [main] ERROR c.a.jacg.runner.base.AbstractRunner - RunnerWriteDb 有任务执行失败,请检查

Adrninistrator commented 1 year ago

再往上一些找,或者用 ERROR 搜索

liangchenhireez commented 1 year ago

再往上一些找,或者用 ERROR 搜索

感谢找到重复的接口了。处理好了。 请问下 写入数据库的只有 Controller 和Service ,没有Imp实现类,请问要在哪个配置修改 image

Adrninistrator commented 1 year ago

默认情况下是不会忽略某个类的,是说 method_call 表里只有controller和service吗

liangchenhireez commented 1 year ago

默认情况下是不会忽略某个类的,是说 method_call 表里只有controller和service吗

jacg_class_name_test_app 只有controller和service jacg_method_call_test_app 只有controller

只填写了以下这些配置

image image image
Adrninistrator commented 1 year ago

看一下这里指定的com.platform包名,是否是满足Impl类的 然后看一下Impl类所在的jar包有没有指定在参数里

liangchenhireez commented 1 year ago

看一下这里指定的com.platform包名,是否是满足Impl类的 然后看一下Impl类所在的jar包有没有指定在参数里

这是一个多模块项目,service imp 在另一个模块项目里面 ,都是在 com.platform.modules.analysis.service.imp目录下。这个种类没找到

image image
Adrninistrator commented 1 year ago

是不是有多个jar包,相关的jar包都需要指定到需要分析的jar包配置文件里

liangchenhireez commented 1 year ago

是不是有多个jar包,相关的jar包都需要指定到需要分析的jar包配置文件里

感谢引入另一个jar包有imp了

KyleWong2007 commented 7 months ago

是不是有多个jar包,相关的jar包都需要指定到需要分析的jar包配置文件里

您好,请问是不是这种多模块项目,每一个小模块都得打jar包然后路径写到配置文件? 我只给总模块打了一个jar包,发现子模块间无法形成完整调用链。

Adrninistrator commented 7 months ago

是不是有多个jar包,相关的jar包都需要指定到需要分析的jar包配置文件里

您好,请问是不是这种多模块项目,每一个小模块都得打jar包然后路径写到配置文件? 我只给总模块打了一个jar包,发现子模块间无法形成完整调用链。

每个需要分析的jar包都需要指定 也可以把需要分析的jar包拷贝到一个目录中,指定这个目录也可以

参考:

https://github.com/Adrninistrator/java-all-call-graph/blob/main/java-all-call-graph/src/main/resources/_jacg_config/jar_dir.properties

# (作用) 指定需要处理的jar包,或保存class、jar文件的目录(每行代表一个jar包或目录路径,支持多行)
# (格式) 路径中的分隔符使用/或\均可,目录最后指定或不指定分隔符均可