CN115185535A - 依赖关系显示方法及装置、存储介质及电子设备 - Google Patents
依赖关系显示方法及装置、存储介质及电子设备 Download PDFInfo
- Publication number
- CN115185535A CN115185535A CN202210856905.3A CN202210856905A CN115185535A CN 115185535 A CN115185535 A CN 115185535A CN 202210856905 A CN202210856905 A CN 202210856905A CN 115185535 A CN115185535 A CN 115185535A
- Authority
- CN
- China
- Prior art keywords
- dependent
- file
- dependent file
- dependency
- dependency relationship
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/43—Checking; Contextual analysis
- G06F8/433—Dependency analysis; Data or control flow analysis
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供了一种依赖关系显示方法及装置、存储介质及电子设备,该方法包括:接收依赖关系显示指令;响应于所述依赖关系显示指令,确定所述依赖关系显示指令对应的工程项目;获取所述工程项目的各个依赖文件中的项目对象模型文件;其中,每个所述依赖文件为直接依赖文件和间接依赖文件中的一种;将各个所述依赖文件中的直接依赖文件确定为目标依赖文件;对每个所述目标依赖文件执行依赖查询操作,以获得每个所述依赖文件的依赖关系;根据各个所述依赖文件的依赖关系生成各个所述依赖文件的依赖关系图;显示所述依赖关系图。应用本发明实施例提供的方法,能够直接显示各依赖文件之间的依赖关系,可以满足用户的需求,提高用户的使用体验。
Description
技术领域
本发明涉及数据处理技术领域,特别涉及一种依赖关系显示方法及装置、存储介质及电子设备。
背景技术
在软件项目开发的过程中,技术人员往往需要查看项目中的依赖关系,从而可以避免开发过程中出现依赖冲突等错误。
在现有技术中,通常是根据依赖文件中的项目对象模型(Project Object Model,POM)文件来获得该依赖文件的依赖关系,然而,一个POM只包含其所属的依赖文件的依赖关系,因此,只能查看单一项目的依赖,无法直观的确定各项目之间的关系。无法满足技术人员的实际需求。
发明内容
本发明所要解决的技术问题是提供一种依赖关系显示方法,能够直接显示各依赖文件之间的依赖关系。
本发明还提供了一种依赖关系显示装置,用以保证上述方法在实际中的实现及应用。
一种依赖关系显示方法,包括:
接收依赖关系显示指令;
响应于所述依赖关系显示指令,确定所述依赖关系显示指令对应的工程项目;
获取所述工程项目的各个依赖文件中的项目对象模型文件;其中,每个所述依赖文件为直接依赖文件和间接依赖文件中的一种;
将各个所述依赖文件中的直接依赖文件确定为目标依赖文件;
对每个所述目标依赖文件执行依赖查询操作,以获得每个所述依赖文件的依赖关系;所述依赖查询操作,包括:根据各个所述项目对象模型文件判断各个所述间接依赖文件中是否存在依赖于所述目标依赖文件的备选依赖文件;若存在至少一个依赖于所述目标依赖文件的备选依赖文件,则将所述备选依赖文件确定为新的目标依赖文件,并重新根据各个所述项目对象模型文件判断各个所述间接依赖文件中是否存在依赖于所述新的目标依赖文件的备选依赖文件,直至各个所述间接依赖文件中没有依赖于所述新的目标依赖文件的备选依赖文件;
根据各个所述依赖文件的依赖关系生成各个所述依赖文件的依赖关系图;
显示所述依赖关系图。
上述的方法,可选的,所述获得每个所述依赖文件的依赖关系之后,还包括:
判断各个所述依赖文件中是否存在多个依赖关系相同的依赖文件;
若存在,则确定所述多个依赖关系相同的依赖文件中的每一个所述依赖文件的目录到根目录的路径长度;
根据每个所述路径长度在所述多个依赖关系相同的依赖文件中确定出项目依赖文件,所述项目依赖文件为所述多个依赖关系相同的依赖文件中路径长度最短的依赖文件;
将所述多个依赖关系相同的依赖文件中除所述项目依赖文件以外的依赖文件,确定为被覆盖版本的依赖文件。
上述的方法,可选的,所述根据每个所述路径长度在所述多个依赖关系相同的依赖文件中确定出项目依赖文件之后,还包括:
根据所述项目依赖文件的文件信息确定出所述项目依赖文件的版本信息;
输出所述项目依赖文件的版本信息。
上述的方法,可选的,所述获取所述工程项目的各个依赖文件中的项目对象模型文件,包括:
对所述工程项目的类路径进行检测,获得所述工程项目的各个依赖文件;
读取每个所述依赖文件中项目对象模型文件。
上述的方法,可选的,所述确定所述依赖关系显示指令对应的工程项目,包括:
对所述依赖关系显示指令进行解析,获得所述依赖关系显示指令的指令信息;
根据所述指令信息中的项目标识在预设的各个备选工程项目中确定出所述依赖关系显示指令对应的工程项目。
一种依赖关系显示装置,包括:
接收单元,用于接收依赖关系显示指令;
第一确定单元,用于响应于所述依赖关系显示指令,确定所述依赖关系显示指令对应的工程项目;
获取单元,用于获取所述工程项目的各个依赖文件中的项目对象模型文件;其中,每个所述依赖文件为直接依赖文件和间接依赖文件中的一种;
第二确定单元,用于将各个所述依赖文件中的直接依赖文件确定为目标依赖文件;
查询单元,用于对每个所述目标依赖文件执行依赖查询操作,以获得每个所述依赖文件的依赖关系;所述依赖查询操作,包括:根据各个所述项目对象模型文件判断各个所述间接依赖文件中是否存在依赖于所述目标依赖文件的备选依赖文件;若存在至少一个依赖于所述目标依赖文件的备选依赖文件,则将所述备选依赖文件确定为新的目标依赖文件,并重新根据各个所述项目对象模型文件判断各个所述间接依赖文件中是否存在依赖于所述新的目标依赖文件的备选依赖文件,直至各个所述间接依赖文件中没有依赖于所述新的目标依赖文件的备选依赖文件;
生成单元,用于根据各个所述依赖文件的依赖关系生成各个所述依赖文件的依赖关系图;
显示单元,用于显示所述依赖关系图。
上述的装置,可选的,所述获取单元,包括:
检测子单元,用于对所述工程项目的类路径进行检测,获得所述工程项目的各个依赖文件;
读取子单元,用于读取每个所述依赖文件中项目对象模型文件。
上述的装置,可选的,所述第一确定子单元,包括:
解析子单元,用于对所述依赖关系显示指令进行解析,获得所述依赖关系显示指令的指令信息;
确定子单元,用于根据所述指令信息中的项目标识在预设的各个备选工程项目中确定出所述依赖关系显示指令对应的工程项目。
一种存储介质,所述存储介质包括存储指令,其中,在所述指令运行时控制所述存储介质所在的设备执行如上述的依赖关系显示方法。
一种电子设备,包括存储器,以及一个或者一个以上的指令,其中一个或一个以上指令存储于存储器中,且经配置以由一个或者一个以上处理器执行如上述的依赖关系显示方法。
基于上述本发明实施提供的一种依赖关系显示方法及装置、存储介质及电子设备,该方法包括:接收依赖关系显示指令;响应于所述依赖关系显示指令,确定所述依赖关系显示指令对应的工程项目;获取所述工程项目的各个依赖文件中的项目对象模型文件;其中,每个所述依赖文件为直接依赖文件和间接依赖文件中的一种;将各个所述依赖文件中的直接依赖文件确定为目标依赖文件;对每个所述目标依赖文件执行依赖查询操作,以获得每个所述依赖文件的依赖关系;所述依赖查询操作,包括:根据各个所述项目对象模型文件判断各个所述间接依赖文件中是否存在依赖于所述目标依赖文件的备选依赖文件;若存在至少一个依赖于所述目标依赖文件的备选依赖文件,则将所述备选依赖文件确定为新的目标依赖文件,并重新根据各个所述项目对象模型文件判断各个所述间接依赖文件中是否存在依赖于所述新的目标依赖文件的备选依赖文件,直至各个所述间接依赖文件中没有依赖于所述新的目标依赖文件的备选依赖文件;根据各个所述依赖文件的依赖关系生成各个所述依赖文件的依赖关系图;显示所述依赖关系图。应用本发明实施例提供的方法,能够直接显示各依赖文件之间的依赖关系,可以满足用户的需求,提高用户的使用体验。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明提供的一种依赖关系显示方法的方法流程图;
图2为本发明提供的一种获取项目对象模型文件的过程的流程图;
图3为本发明提供的一种确定依赖关系显示指令对应的工程项目的过程的流程图;
图4为本发明提供的一种依赖关系显示装置的结构示意图;
图5为本发明提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本申请中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本发明实施例提供了一种依赖关系显示方法,该方法可以应用于电子设备,所述方法的方法流程图如图1所示,具体包括:
S101:接收依赖关系显示指令。
在本实施例中,该依赖显示指令可以是用户点击显示控件触发的指令,也可以是用户点击预设的快捷键触发的指令,还可以是在显示依赖关系图时用户点击刷新控件触发的指令。
可选的,依赖关系显示指令可以用于指示显示工程项目的各个依赖文件的依赖关系。
S102:响应于所述依赖关系显示指令,确定所述依赖关系显示指令对应的工程项目。
在本实施例中的工程项目可以是用各类编程语言开发的软件的项目,例如,可以是java项目。
在一些实施例中,可以在各个预设的备选工程项目中确定出依赖关系显示指令对应的工程项目。
S103:获取所述工程项目的各个依赖文件中的项目对象模型文件;其中,每个所述依赖文件为直接依赖文件和间接依赖文件中的一种。
在本实施例中,依赖文件可以是的工程文件,例如,可以是jar包文件。
其中,直接依赖文件可以是工程项目中的根节点,间接依赖文件可以是工程项目中的非根节点,也即,直接依赖文件可以被其他文件依赖但不依赖于其他文件;间接依赖文件可以依赖于其他文件,也可以被其他文件依赖。
具体的,依赖文件中的项目对象模型pom文件可以包括该依赖文件的依赖关系,例如,可以包含该依赖文件所依赖的文件的文件标识和被依赖的文件的文件标识。
S104:将各个所述依赖文件中的直接依赖文件确定为目标依赖文件。
在本实施例中,可以在各个依赖文件中选取出直接依赖文件,然后将直接依赖文件确定为目标依赖文件。
S105:对每个所述目标依赖文件执行依赖查询操作,以获得每个所述依赖文件的依赖关系;所述依赖查询操作,包括:根据各个所述项目对象模型文件判断各个所述间接依赖文件中是否存在依赖于所述目标依赖文件的备选依赖文件;若存在至少一个依赖于所述目标依赖文件的备选依赖文件,则将所述备选依赖文件确定为新的目标依赖文件,并重新根据各个所述项目对象模型文件判断各个所述间接依赖文件中是否存在依赖于所述新的目标依赖文件的备选依赖文件,直至各个所述间接依赖文件中没有依赖于所述新的目标依赖文件的备选依赖文件。
在本实施例中,若各个间接依赖文件中不存在依赖于目标依赖文件的备选依赖文件,则对目标依赖文件查询完成,获得各个依赖文件的依赖关系。
S106:根据各个所述依赖文件的依赖关系生成各个所述依赖文件的依赖关系图。
在本实施例中,该依赖关系图可以是树状图,通过树状图可以让用户清楚的观察各个依赖文件之间的依赖关系。
S107:显示所述依赖关系图。
在本实施例中,可以在预设的显示界面上显示该依赖关系图。
应用本发明实施例提供的方法,能够直接显示各依赖文件之间的依赖关系,可以满足用户的需求,提高用户的使用体验。
在本发明提供的一实施例中,基于上述的实施过程,具体的,所述获得每个所述依赖文件的依赖关系之后,还包括:
判断各个所述依赖文件中是否存在多个依赖关系相同的依赖文件;
若存在,则确定所述多个依赖关系相同的依赖文件中的每一个所述依赖文件的目录到根目录的路径长度;
根据每个所述路径长度在所述多个依赖关系相同的依赖文件中确定出项目依赖文件,所述项目依赖文件为所述多个依赖关系相同的依赖文件中路径长度最短的依赖文件;
将所述多个依赖关系相同的依赖文件中除所述项目依赖文件以外的依赖文件,确定为被覆盖版本的依赖文件。
在本实施例中,可以确定出各个依赖关系相同的依赖文件,对于依赖关系相同的各个依赖文件,确定各依赖文件到根目录的路径长度,并比较各个依赖文件的路径长度,将路径长度最短的依赖文件,确定为最新版本的依赖文件,将其余的依赖文件确定为历史版本的依赖文件,也即被覆盖版本的依赖文件。
在本实施例中,新版本的依赖文件会覆盖旧版本的依赖文件,根据依赖关键的路径长度查询出各版本的依赖文件。
可以响应于用户的查询指令,可以确定查询指令对应的各个依赖文件,通过比较各依赖文件的路径长度,从而确定出项目依赖文件以及被覆盖版本的依赖文件。
在本发明提供的一实施例中,基于上述的实施过程,具体的,所述根据每个所述路径长度在所述多个依赖关系相同的依赖文件中确定出项目依赖文件之后,还包括:
根据所述项目依赖文件的文件信息确定出所述项目依赖文件的版本信息;
输出所述项目依赖文件的版本信息。
在本实施例中,确定出项目依赖文件之后,可以接收用户对项目依赖文件的版本信息查看请求;响应于版本信息查看请求,根据项目依赖文件的文件信息确定出项目依赖文件的版本信息,在预设的显示界面输出显示项目依赖文件的版本信息。
在本发明提供的一实施例中,基于上述的实施过程,具体的,所述获取所述工程项目的各个依赖文件中的项目对象模型文件,如图2所示,包括:
S201:对所述工程项目的类路径进行检测,获得所述工程项目的各个依赖文件。
在本实施例中,依赖文件存储在工程项目的类路径下,确定工程项目的类路径,在确定工程项目的类型路径之后,对工程项目的类路径进行检测,获得工程项目的各个依赖文件,类路径的数量可以为一个或多个。
S202:读取每个所述依赖文件中项目对象模型文件。
在本实施例中,可以对依赖文件进行读取,从而可以获得依赖文件中的项目对象模型文件,每个依赖文件中均可以包括一个项目对象模型文件。
在本发明提供的一实施例中,基于上述的实施过程,具体的,所述确定所述依赖关系显示指令对应的工程项目,如图3所示,包括:
S301:对所述依赖关系显示指令进行解析,获得所述依赖关系显示指令的指令信息。
在本实施例中,依赖关系显示指令的指令信息中可以包括项目标识。
S302:根据所述指令信息中的项目标识在预设的各个备选工程项目中确定出所述依赖关系显示指令对应的工程项目。
在本实施例中,可以将该项目标识与各个备选工程项目的标识进行比对,若存在备选工程项目的标识与所述项目标识一致,则将该备选工程项目确定为依赖关系显示指令对应的工程项目。
与图1所述的方法相对应,本发明实施例还提供了一种依赖关系显示装置,用于对图1中方法的具体实现,本发明实施例提供的依赖关系显示装置可以应用于电子设备中,其结构示意图如图4所示,具体包括:
接收单元401,用于接收依赖关系显示指令;
第一确定单元402,用于响应于所述依赖关系显示指令,确定所述依赖关系显示指令对应的工程项目;
获取单元403,用于获取所述工程项目的各个依赖文件中的项目对象模型文件;其中,每个所述依赖文件为直接依赖文件和间接依赖文件中的一种;
第二确定单元404,用于将各个所述依赖文件中的直接依赖文件确定为目标依赖文件;
查询单元405,用于对每个所述目标依赖文件执行依赖查询操作,以获得每个所述依赖文件的依赖关系;所述依赖查询操作,包括:根据各个所述项目对象模型文件判断各个所述间接依赖文件中是否存在依赖于所述目标依赖文件的备选依赖文件;若存在至少一个依赖于所述目标依赖文件的备选依赖文件,则将所述备选依赖文件确定为新的目标依赖文件,并重新根据各个所述项目对象模型文件判断各个所述间接依赖文件中是否存在依赖于所述新的目标依赖文件的备选依赖文件,直至各个所述间接依赖文件中没有依赖于所述新的目标依赖文件的备选依赖文件;
生成单元406,用于根据各个所述依赖文件的依赖关系生成各个所述依赖文件的依赖关系图;
显示单元407,用于显示所述依赖关系图。
在本发明提供的一实施例中,基于上述的实施过程,可选的,所述获取单元,包括:
检测子单元,用于对所述工程项目的类路径进行检测,获得所述工程项目的各个依赖文件;
读取子单元,用于读取每个所述依赖文件中项目对象模型文件。
在本发明提供的一实施例中,基于上述的实施过程,可选的,所述第一确定子单元,包括:
解析子单元,用于对所述依赖关系显示指令进行解析,获得所述依赖关系显示指令的指令信息;
确定子单元,用于根据所述指令信息中的项目标识在预设的各个备选工程项目中确定出所述依赖关系显示指令对应的工程项目。
在本发明提供的一实施例中,基于上述的方案,可选的,所述依赖关系显示装置,还包括:
判断单元,用于判断各个所述依赖文件中是否存在多个依赖关系相同的依赖文件;
第三确定单元,用于若存在,则确定所述多个依赖关系相同的依赖文件中的每一个所述依赖文件的目录到根目录的路径长度;
第四确定单元,用于根据每个所述路径长度在所述多个依赖关系相同的依赖文件中确定出项目依赖文件,所述项目依赖文件为所述多个依赖关系相同的依赖文件中路径长度最短的依赖文件;
第五确定单元,用于将所述多个依赖关系相同的依赖文件中除所述项目依赖文件以外的依赖文件,确定为被覆盖版本的依赖文件。
在本发明提供的一实施例中,基于上述的方案,可选的,所述依赖关系显示装置,还包括:
第五确定单元,用于根据所述项目依赖文件的文件信息确定出所述项目依赖文件的版本信息;
输出单元,用于输出所述项目依赖文件的版本信息。
上述本发明实施例公开的依赖关系显示装置中的各个单元和模块具体的原理和执行过程,与上述本发明实施例公开的依赖关系显示方法相同,可参见上述本发明实施例提供的依赖关系显示方法中相应的部分,这里不再进行赘述。
本发明实施例还提供了一种存储介质,所述存储介质包括存储的指令,其中,在所述指令运行时控制所述存储介质所在的设备执行上述依赖关系显示方法。
本发明实施例还提供了一种电子设备,其结构示意图如图5所示,具体包括存储器501,以及一个或者一个以上的指令502,其中一个或者一个以上指令502存储于存储器501中,且经配置以由一个或者一个以上处理器503执行所述一个或者一个以上指令502进行以下操作:
接收依赖关系显示指令;
响应于所述依赖关系显示指令,确定所述依赖关系显示指令对应的工程项目;
获取所述工程项目的各个依赖文件中的项目对象模型文件;其中,每个所述依赖文件为直接依赖文件和间接依赖文件中的一种;
将各个所述依赖文件中的直接依赖文件确定为目标依赖文件;
对每个所述目标依赖文件执行依赖查询操作,以获得每个所述依赖文件的依赖关系;所述依赖查询操作,包括:根据各个所述项目对象模型文件判断各个所述间接依赖文件中是否存在依赖于所述目标依赖文件的备选依赖文件;若存在至少一个依赖于所述目标依赖文件的备选依赖文件,则将所述备选依赖文件确定为新的目标依赖文件,并重新根据各个所述项目对象模型文件判断各个所述间接依赖文件中是否存在依赖于所述新的目标依赖文件的备选依赖文件,直至各个所述间接依赖文件中没有依赖于所述新的目标依赖文件的备选依赖文件;
根据各个所述依赖文件的依赖关系生成各个所述依赖文件的依赖关系图;
显示所述依赖关系图。
经本发明人研究发现,开发人员在查看maven依赖时,开发人员只能看到本项目中的直接依赖的关系,但是无法方便的查看到项目中的依赖中的依赖之间的关系;项目中的多个直接依赖可能使用同一个依赖,但必须深入到每一个依赖中的pom文件才能查看其中的关系;若多个直接依赖使用同一个依赖但分属不同的版本,还得根据依赖路径的深度来确定本项目中使用的是哪一个版本的依赖;想要查看项目中有没有使用依赖,通过maven则必须深入每一个依赖的pom文件来查看本项目是否使用了该依赖。
为了解决上述问题,在本发明实施例提供的方案中,可以使开发人员可以直接通过搜索来显示某个依赖,或者直接查看树状图来查看本项目中的所有依赖关系,可以显示那些不同版本的同一个依赖之间的覆盖关系。
具体如下:
1.1、收集依赖之中的pom文件部分,其中,直接扫描工程中的类路径有哪些依赖的jar包,读取依赖的jar中的pom文件即可得到本工程中的所有依赖的pom文件。
1.2、解析依赖之间的关系,其中,java项目中的每一个直接依赖都是一个根节点,间接依赖都是非根节点;首先记录根节点的依赖关系,然后在得到的pom文件中查找对应依赖,若找到,则把改依赖的父节点设置为该根节点,若没有找到,则该根节点没有直接其他的依赖。根节点解析完了,可以再解析2级节点,解析方法和解析根节点一致,重复如此,直至pom文件都被解析完成。
1.3、依赖之间的覆盖关系,其中,java项目中使用同一个依赖但分属于不同的版本之间就会发生依赖覆盖的情况,可以直接查看依赖之间的关系,查找各个根节点有没有同一个依赖但属于不同的版本,如果找到,则计算该依赖到根目录之间的路径长度,长度短者为项目的依赖,长度长者则是被覆盖的版本。
1.4、搜索依赖,其中,可以直接遍历各个根节点查找需要搜索的依赖。
1.5、依赖刷新,其中,项目的中pom文件会发生变化,每次打开pom文件的显示图都会重新生成依赖之间的关系图;或者也可以在第二个模块点击刷新按钮,也会生成依赖之间的关系图。生成方式和1.1,1.2,1.3这三个步骤一致。
2、用类似树状图的方式显示依赖之间的相互关系:该部分直接把上述第一个模块的1.1,1.2,1.3这三个步骤生成的树状图显示出来。
应用本发明实施例提供的方法,可以快速便捷的做到以下几个事情:
看到项目整体的依赖关系、可以搜索某个依赖是否被使用,以及可以查看某一个依赖使用的是哪一个版本。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本发明时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
以上对本发明所提供的一种依赖关系显示方法进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种依赖关系显示方法,其特征在于,包括:
接收依赖关系显示指令;
响应于所述依赖关系显示指令,确定所述依赖关系显示指令对应的工程项目;
获取所述工程项目的各个依赖文件中的项目对象模型文件;其中,每个所述依赖文件为直接依赖文件和间接依赖文件中的一种;
将各个所述依赖文件中的直接依赖文件确定为目标依赖文件;
对每个所述目标依赖文件执行依赖查询操作,以获得每个所述依赖文件的依赖关系;所述依赖查询操作,包括:根据各个所述项目对象模型文件判断各个所述间接依赖文件中是否存在依赖于所述目标依赖文件的备选依赖文件;若存在至少一个依赖于所述目标依赖文件的备选依赖文件,则将所述备选依赖文件确定为新的目标依赖文件,并重新根据各个所述项目对象模型文件判断各个所述间接依赖文件中是否存在依赖于所述新的目标依赖文件的备选依赖文件,直至各个所述间接依赖文件中没有依赖于所述新的目标依赖文件的备选依赖文件;
根据各个所述依赖文件的依赖关系生成各个所述依赖文件的依赖关系图;
显示所述依赖关系图。
2.根据权利要求1所述的方法,其特征在于,所述获得每个所述依赖文件的依赖关系之后,还包括:
判断各个所述依赖文件中是否存在多个依赖关系相同的依赖文件;
若存在,则确定所述多个依赖关系相同的依赖文件中的每一个所述依赖文件的目录到根目录的路径长度;
根据每个所述路径长度在所述多个依赖关系相同的依赖文件中确定出项目依赖文件,所述项目依赖文件为所述多个依赖关系相同的依赖文件中路径长度最短的依赖文件;
将所述多个依赖关系相同的依赖文件中除所述项目依赖文件以外的依赖文件,确定为被覆盖版本的依赖文件。
3.根据权利要求2所述的方法,其特征在于,所述根据每个所述路径长度在所述多个依赖关系相同的依赖文件中确定出项目依赖文件之后,还包括:
根据所述项目依赖文件的文件信息确定出所述项目依赖文件的版本信息;
输出所述项目依赖文件的版本信息。
4.根据权利要求1所述的方法,其特征在于,所述获取所述工程项目的各个依赖文件中的项目对象模型文件,包括:
对所述工程项目的类路径进行检测,获得所述工程项目的各个依赖文件;
读取每个所述依赖文件中项目对象模型文件。
5.根据权利要求1所述的方法,其特征在于,所述确定所述依赖关系显示指令对应的工程项目,包括:
对所述依赖关系显示指令进行解析,获得所述依赖关系显示指令的指令信息;
根据所述指令信息中的项目标识在预设的各个备选工程项目中确定出所述依赖关系显示指令对应的工程项目。
6.一种依赖关系显示装置,其特征在于,包括:
接收单元,用于接收依赖关系显示指令;
第一确定单元,用于响应于所述依赖关系显示指令,确定所述依赖关系显示指令对应的工程项目;
获取单元,用于获取所述工程项目的各个依赖文件中的项目对象模型文件;其中,每个所述依赖文件为直接依赖文件和间接依赖文件中的一种;
第二确定单元,用于将各个所述依赖文件中的直接依赖文件确定为目标依赖文件;
查询单元,用于对每个所述目标依赖文件执行依赖查询操作,以获得每个所述依赖文件的依赖关系;所述依赖查询操作,包括:根据各个所述项目对象模型文件判断各个所述间接依赖文件中是否存在依赖于所述目标依赖文件的备选依赖文件;若存在至少一个依赖于所述目标依赖文件的备选依赖文件,则将所述备选依赖文件确定为新的目标依赖文件,并重新根据各个所述项目对象模型文件判断各个所述间接依赖文件中是否存在依赖于所述新的目标依赖文件的备选依赖文件,直至各个所述间接依赖文件中没有依赖于所述新的目标依赖文件的备选依赖文件;
生成单元,用于根据各个所述依赖文件的依赖关系生成各个所述依赖文件的依赖关系图;
显示单元,用于显示所述依赖关系图。
7.根据权利要求6所述的装置,其特征在于,所述获取单元,包括:
检测子单元,用于对所述工程项目的类路径进行检测,获得所述工程项目的各个依赖文件;
读取子单元,用于读取每个所述依赖文件中项目对象模型文件。
8.根据权利要求6所述的装置,其特征在于,所述第一确定子单元,包括:
解析子单元,用于对所述依赖关系显示指令进行解析,获得所述依赖关系显示指令的指令信息;
确定子单元,用于根据所述指令信息中的项目标识在预设的各个备选工程项目中确定出所述依赖关系显示指令对应的工程项目。
9.一种存储介质,其特征在于,所述存储介质包括存储指令,其中,在所述指令运行时控制所述存储介质所在的设备执行如权利要求1~5任意一项所述的依赖关系显示方法。
10.一种电子设备,其特征在于,包括存储器,以及一个或者一个以上的指令,其中一个或一个以上指令存储于存储器中,且经配置以由一个或者一个以上处理器执行如权利要求1~5任意一项所述的依赖关系显示方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210856905.3A CN115185535A (zh) | 2022-07-20 | 2022-07-20 | 依赖关系显示方法及装置、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210856905.3A CN115185535A (zh) | 2022-07-20 | 2022-07-20 | 依赖关系显示方法及装置、存储介质及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115185535A true CN115185535A (zh) | 2022-10-14 |
Family
ID=83518618
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210856905.3A Pending CN115185535A (zh) | 2022-07-20 | 2022-07-20 | 依赖关系显示方法及装置、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115185535A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117573562A (zh) * | 2024-01-15 | 2024-02-20 | 云筑信息科技(成都)有限公司 | 一种对比pom文件不同版本的方法 |
-
2022
- 2022-07-20 CN CN202210856905.3A patent/CN115185535A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117573562A (zh) * | 2024-01-15 | 2024-02-20 | 云筑信息科技(成都)有限公司 | 一种对比pom文件不同版本的方法 |
CN117573562B (zh) * | 2024-01-15 | 2024-05-28 | 云筑信息科技(成都)有限公司 | 一种对比pom文件不同版本的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Zhou et al. | API deprecation: a retrospective analysis and detection method for code examples on the web | |
US10162738B2 (en) | System, method, and computer readable medium for universal software testing | |
US7805451B2 (en) | Ontology-integration-position specifying apparatus, ontology-integration supporting method, and computer program product | |
Alves et al. | An exploratory study of information retrieval techniques in domain analysis | |
Fleming et al. | An information foraging theory perspective on tools for debugging, refactoring, and reuse tasks | |
KR101510355B1 (ko) | 데이터 관계의 그래픽 표현 | |
RU2336557C2 (ru) | Классы структур автоматизации пользовательского интерфейса и интерфейсы | |
US6502233B1 (en) | Automated help system for reference information | |
CN109308254B (zh) | 一种测试方法、装置及测试设备 | |
KR100460536B1 (ko) | 컴포넌트의 성능 측정 결과를 이용한 연관 컴포넌트 추천장치 및 방법 | |
JP4911438B2 (ja) | 操作監視装置 | |
CN107783766B (zh) | 对应用程序的文件进行清理的方法和装置 | |
CN111198852A (zh) | 微服务架构下知识图谱驱动的元数据关系推理方法 | |
CN115185535A (zh) | 依赖关系显示方法及装置、存储介质及电子设备 | |
CN111679976A (zh) | 一种页面对象的查找方法及装置 | |
JP2012529711A (ja) | ソフトウェア拡張子解析方法及びシステム | |
US20110321001A1 (en) | Visualization of runtime analysis across dynamic boundaries | |
KR101798705B1 (ko) | 유연성을 갖춘 메타데이터 구성 기법 | |
CN115543285A (zh) | 一种交互窗口显示方法、装置、设备及存储介质 | |
US20240036829A1 (en) | Providing resolution suggestions in a program development tool | |
CN115481025A (zh) | 自动化测试的脚本录制方法、装置、计算机设备及介质 | |
CN111399830B (zh) | 一种应用程序容量监控方法、装置、电子设备及存储介质 | |
CN109299004B (zh) | 关键元素差异性分析方法及系统 | |
CN111522627B (zh) | 一种Docker镜像管理方法、装置、设备及介质 | |
CN117873907B (zh) | 控件元素测试方法、装置及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |