1.一种代码分析方法,其特征在于,包括:
获取目标Java工程的源文件的绝对路径;
从所述绝对路径下的类文件中查找出与指定的URL对应的第一方法;
在所述第一方法的方法体中查找对第二方法的调用,所述第二方法为与所述第一方法不同的方法;
若在所述第一方法的方法体中查找到对所述第二方法的调用,且在类文件中查找到所述第二方法,则记录所述第一方法与所述第二方法的调用关系;
在所述第二方法的方法体中查找对第三方法的调用,所述第三方法为与所述第一、第二方法不同的方法;
若在所述第二方法的方法体中查找到对所述第三方法的调用,且在类文件中查找到所述第三方法,则记录所述第二方法与所述第三方法的调用关系;
重复上述流程,直到当前方法中无法找到对新方法的调用时,则结束代码分析,并汇总记录的所述调用关系;
根据汇总的所述调用关系绘制出对应的调用关系图。
2.根据权利要求1所述的代码分析方法,其特征在于,所述获取目标Java工程的源文件的绝对路径包括:获取所述目标Java工程的环境变量;
从所述环境变量中解析出源码路径和编译路径;
根据所述源码路径和所述编译路径确定出所述目标Java工程的源文件的绝对路径。
3.根据权利要求1所述的代码分析方法,其特征在于,所述在类文件中查找所述第二方法包括:确定与所述第二方法的方法名对应的类文件的文件路径;
获取所述文件路径下的类文件;
在所述类文件中查找所述第二方法。
4.根据权利要求1所述的代码分析方法,其特征在于,在结束代码分析之前,还包括:若当前方法所属的类为框架提供的数据库操作类的子类,则在当前方法的方法体中查找对字符串类型的参数的调用;
若在当前方法的方法体中查找到对字符串类型的参数的调用,则将所述字符串类型的参数确定为与当前方法对应的数据库标识。
5.根据权利要求1至4中任一项所述的代码分析方法,所述根据汇总的所述调用关系绘制出对应的调用关系图包括:将汇总的所述调用关系导入到预设的PlantUML脚本模板中,生成所述调用关系图的绘制脚本;
运行所述绘制脚本,生成与汇总的所述调用关系对应的所述调用关系图。
6.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5中任一项所述的代码分析方法的步骤。
7.一种代码分析终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如下步骤:获取目标Java工程的源文件的绝对路径;
从所述绝对路径下的类文件中查找出与指定的URL对应的第一方法;
在所述第一方法的方法体中查找对第二方法的调用,所述第二方法为与所述第一方法不同的方法;
若在所述第一方法的方法体中查找到对所述第二方法的调用,且在类文件中查找到所述第二方法,则记录所述第一方法与所述第二方法的调用关系;
在所述第二方法的方法体中查找对第三方法的调用,所述第三方法为与所述第一、第二方法不同的方法;
若在所述第二方法的方法体中查找到对所述第三方法的调用,且在类文件中查找到所述第三方法,则记录所述第二方法与所述第三方法的调用关系;
重复上述流程,直到当前方法中无法找到对新方法的调用时,则结束代码分析,并汇总记录的所述调用关系;
根据汇总的所述调用关系绘制出对应的调用关系图。
8.根据权利要求7所述的代码分析终端设备,其特征在于,所述获取目标Java工程的源文件的绝对路径包括:获取所述目标Java工程的环境变量;
从所述环境变量中解析出源码路径和编译路径;
根据所述源码路径和所述编译路径确定出所述目标Java工程的源文件的绝对路径。
9.根据权利要求7所述的代码分析终端设备,其特征在于,在结束代码分析之前,还包括:若当前方法所属的类为框架提供的数据库操作类的子类,则在当前方法的方法体中查找对字符串类型的参数的调用;
若在当前方法的方法体中查找到对字符串类型的参数的调用,则将所述字符串类型的参数确定为与当前方法对应的数据库标识。
10.根据权利要求7至9中任一项所述的代码分析终端设备,其特征在于,所述根据汇总的所述调用关系绘制出对应的调用关系图包括:将汇总的所述调用关系导入到预设的PlantUML脚本模板中,生成所述调用关系图的绘制脚本;
运行所述绘制脚本,生成与汇总的所述调用关系对应的所述调用关系图。