CN115202716A - 依赖缺失的检测方法、装置、电子设备及存储介质 - Google Patents

依赖缺失的检测方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN115202716A
CN115202716A CN202210684844.7A CN202210684844A CN115202716A CN 115202716 A CN115202716 A CN 115202716A CN 202210684844 A CN202210684844 A CN 202210684844A CN 115202716 A CN115202716 A CN 115202716A
Authority
CN
China
Prior art keywords
detected
class file
compressed packet
packet
compressed
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
Application number
CN202210684844.7A
Other languages
English (en)
Inventor
高健
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ping An Bank Co Ltd
Original Assignee
Ping An Bank Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ping An Bank Co Ltd filed Critical Ping An Bank Co Ltd
Priority to CN202210684844.7A priority Critical patent/CN115202716A/zh
Publication of CN115202716A publication Critical patent/CN115202716A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请提供一种依赖缺失的检测方法、装置、电子设备及计算机可读存储介质。该依赖缺失的检测方法包括:对待检测压缩包进行解析,得到待检测压缩包的目标类文件列表,目标类文件列表包括待检测压缩包包含的类文件和待检测压缩包的依赖包包含的类文件;获取待检测压缩包的参考类文件列表,参考类文件列表包括待检测压缩包的各实际依赖类文件;将参考类文件列表与目标类文件列表进行对比,得到待检测压缩包的类对比结果;若类对比结果指示目标类文件列表中不存在实际依赖类文件,则确定待检测压缩包缺失依赖关系。本申请中可以检查出待检测压缩包中深层次的依赖缺失情况,从而准确地确定如Jar包等压缩包内的依赖缺失情况。

Description

依赖缺失的检测方法、装置、电子设备及存储介质
技术领域
本申请涉及计算机技术领域,具体涉及一种依赖缺失的检测方法、装置、电子设备及计算机可读存储介质。
背景技术
当前大量企业采用Java编译工具进行产品开发,为了便于存储和使用,在利用Java编译工具进行产品开发过程中,会不可避免地将一些class文件打包成如Jar包等压缩包。
现有技术中,通过IDE(Integrated Development Environment,集成开发环境)的编译打包功能以能否打包成功为准来检查Jar包是否缺失依赖,或者,通过测试环境进行功能测试来检查Jar包是否缺失依赖。但是,这两种方式都无法检查深层次的依赖缺失情况,无法准确地确定Jar包内的依赖缺失情况。
发明内容
本申请提供一种依赖缺失的检测方法、装置、电子设备及计算机可读存储介质,旨在解决现有技术中无法检查压缩包深层次的依赖缺失情况,无法准确地确定如Jar包等压缩包内的依赖缺失情况。
第一方面,本申请提供一种依赖缺失的检测方法,所述方法包括:
对待检测压缩包进行解析,得到所述待检测压缩包的目标类文件列表,其中,所述目标类文件列表包括所述待检测压缩包包含的类文件和所述待检测压缩包的依赖包包含的类文件;
获取所述待检测压缩包的参考类文件列表,其中,所述参考类文件列表包括所述待检测压缩包的各实际依赖类文件;
将所述参考类文件列表与所述目标类文件列表进行对比,得到所述待检测压缩包的类对比结果;
若所述类对比结果指示所述目标类文件列表中不存在所述实际依赖类文件,则确定所述待检测压缩包缺失依赖关系。
第二方面,本申请提供一种依赖缺失的检测装置,所述依赖缺失的检测装置包括:
解析单元,用于对待检测压缩包进行解析,得到所述待检测压缩包的目标类文件列表,其中,所述目标类文件列表包括所述待检测压缩包包含的类文件和所述待检测压缩包的依赖包包含的类文件;
获取单元,用于获取所述待检测压缩包的参考类文件列表,其中,所述参考类文件列表包括所述待检测压缩包的各实际依赖类文件;
对比单元,用于将所述参考类文件列表与所述目标类文件列表进行对比,得到所述待检测压缩包的类对比结果;
确定单元,用于若所述类对比结果指示所述目标类文件列表中不存在所述实际依赖类文件,则确定所述待检测压缩包缺失依赖关系。
在一些实施例中,所述解析单元具体用于:
对所述待检测压缩包进行解析,得到所述待检测压缩包包含的第一Class文件和所述待检测压缩包的一级依赖包;
对所述一级依赖包进行解析,得到所述一级依赖包包含的第二Class文件;
直至所述待检测压缩包的解析结果中不包含依赖包时,汇总得到所述待检测压缩包的目标类文件列表,其中,所述类文件列表包含所述第一Class文件和所述第二Class文件。
在一些实施例中,所述对待检测压缩包进行解析,得到所述待检测压缩包的目标类文件列表之前,所述解析单元具体用于:
获取待发布的Jar包,以作为所述待检测压缩包;
在一些实施例中,所述依赖缺失的检测装置还包括发布单元,所述若所述类对比结果指示所述目标类文件列表中不存在所述实际依赖类文件,则确定所述待检测压缩包缺失依赖关系之后,所述发布单元具体用于:
基于所述类对比结果确定所述待检测压缩的依赖缺失对象;
获取所述依赖缺失对象对所述待检测压缩包运行的影响程度;
若所述影响程度大于预设的第一影响程度阈值,则限制所述待检测压缩包自动发布。
在一些实施例中,所述依赖缺失的检测装置还包括滤除单元,所述滤除单元具体用于:
基于所述目标类文件列表,检测所述待检测压缩包的同一依赖包内是否存在至少两个相同的类文件;
若所述待检测压缩包的同一依赖包内存在至少两个相同的类文件,则对所述同一依赖包内的至少两个相同的类文件进行滤除,以滤除所述待检测压缩包的同一依赖包的冗余文件。
在一些实施例中,所述依赖缺失的检测装置还包括提醒单元,所述若所述类对比结果指示所述目标类文件列表中不存在所述实际依赖类文件,则确定所述待检测压缩包缺失依赖关系之后,所述提醒单元具体用于:
基于所述类对比结果确定所述待检测压缩的依赖缺失对象;
获取所述依赖缺失对象对所述待检测压缩包运行的影响程度;
若所述待检测压缩包已发布、且所述影响程度大于预设的第二影响程度阈值,则输出所述待检测压缩包的修复提醒。
在一些实施例中,所述修复提醒包括所述待检测压缩包的修复紧急程度和修复难度,所述提醒单元具体用于:
根据所述影响程度确定所述待检测压缩包的修复紧急程度,其中,所述影响程度与所述修复紧急程度呈正关系;
获取所述依赖缺失对象的依赖关系复杂度和所述依赖缺失对象的完整程度;
基于所述依赖关系复杂度和所述完整程度,确定所述待检测压缩包的修复难度。
在一些实施例中,所述获取单元具体用于:
根据所述待检测压缩包的各已编译类文件的定义进行静态分析,得到所述各已编译类文件的引用类文件;
将所述各已编译类文件的引用类文件作为所述待检测压缩包的实际依赖类文件进行汇总,得到所述待检测压缩包的参考类文件列表。
第三方面,本申请还提供一种电子设备,所述电子设备包括处理器和存储器,所述存储器中存储有计算机程序,所述处理器调用所述存储器中的计算机程序时执行本申请提供的任一种依赖缺失的检测方法中的步骤。
第四方面,本申请还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器进行加载,以执行所述的依赖缺失的检测方法中的步骤。
本申请中,第一方面,通过对待检测压缩包进行解析得到待检测压缩包的目标类文件列表,由于解析得到的目标类文件列表包括了待检测压缩包包含的类文件以及待检测压缩包的依赖包包含的类文件,因此,使得待检测压缩包深层次的依赖关系可以解析出来;第二方面,由于待检测压缩包的参考类文件列表包含了待检测压缩包的各实际依赖类文件;因此,通过参考类文件列表与目标类文件列表进行对比得到待检测压缩包的类对比结果,在类对比结果指示目标类文件列表中不存在实际依赖类文件时,确定待检测压缩包缺失依赖关系,可以有效地检查出待检测压缩包中深层次的依赖缺失情况,从而准确地确定如Jar包等压缩包内的依赖缺失情况。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例所提供的依赖缺失的检测系统的场景示意图;
图2是本申请实施例提供的依赖缺失的检测方法的一种流程示意图;
图3是本申请实施例中提供的依赖缺失检测过程的一个实施例示意图;
图4是本申请实施例中提供的步骤201的一个实施例流程示意图;
图5是本申请实施例中提供的限制待检测压缩包自动发布的一个实施例流程示意图;
图6是本申请实施例中提供的输出修复提醒的一个实施例流程示意图;
图7是本申请实施例中提供的依赖缺失的检测装置的一个实施例结构示意图;
图8是本申请实施例中提供的电子设备的一个实施例结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本申请实施例的描述中,需要理解的是,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个所述特征。在本申请实施例的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
为了使本领域任何技术人员能够实现和使用本申请,给出了以下描述。在以下描述中,为了解释的目的而列出了细节。应当明白的是,本领域普通技术人员可以认识到,在不使用这些特定细节的情况下也可以实现本申请。在其它实例中,不会对公知的过程进行详细阐述,以避免不必要的细节使本申请实施例的描述变得晦涩。因此,本申请并非旨在限于所示的实施例,而是与符合本申请实施例所公开的原理和特征的最广范围相一致。
本申请实施例依赖缺失的检测方法的执行主体可以为本申请实施例提供的依赖缺失的检测装置,或者集成了该依赖缺失的检测装置的服务器设备、物理主机或者用户设备(User Equipment,UE)等不同类型的电子设备,其中,依赖缺失的检测装置可以采用硬件或者软件的方式实现,UE具体可以为智能手机、平板电脑、笔记本电脑、掌上电脑、台式电脑或者个人数字助理(Personal Digital Assistant,PDA)等终端设备。
该电子设备可以采用单独运行的工作方式,或者也可以采用设备集群的工作方式。
参见图1,图1是本申请实施例所提供的依赖缺失的检测系统的场景示意图。其中,该依赖缺失的检测系统可以包括电子设备100,电子设备100中集成有依赖缺失的检测装置。例如,该电子设备可以对待检测压缩包进行解析,得到所述待检测压缩包的目标类文件列表,其中,所述目标类文件列表包括所述待检测压缩包包含的类文件和所述待检测压缩包的依赖包包含的类文件;获取所述待检测压缩包的参考类文件列表,其中,所述参考类文件列表包括所述待检测压缩包的各实际依赖类文件;将所述参考类文件列表与所述目标类文件列表进行对比,得到所述待检测压缩包的类对比结果;若所述类对比结果指示所述目标类文件列表中不存在所述实际依赖类文件,则确定所述待检测压缩包缺失依赖关系。
另外,如图1所示,该依赖缺失的检测系统还可以包括存储器200,用于存储数据,如存储如Jar包、War包等压缩包。
需要说明的是,图1所示的依赖缺失的检测系统的场景示意图仅仅是一个示例,本申请实施例描述的依赖缺失的检测系统以及场景是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着依赖缺失的检测系统的演变和新业务场景的出现,本发明实施例提供的技术方案对于类似的技术问题,同样适用。
下面,开始介绍本申请实施例提供的依赖缺失的检测方法,本申请实施例中以电子设备作为执行主体,为了简化与便于描述,后续方法实施例中将省略该执行主体。
参照图2和图3,图2是本申请实施例提供的依赖缺失的检测方法的一种流程示意图,图3是本申请实施例中提供的依赖缺失检测过程的一个实施例示意图。需要说明的是,虽然在图2或其他附图所示的流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。该依赖缺失的检测方法包括步骤201~203,其中:
201、对待检测压缩包进行解析,得到所述待检测压缩包的目标类文件列表。
其中,所述目标类文件列表包括所述待检测压缩包包含的类文件和所述待检测压缩包的依赖包包含的类文件。
其中,待检测压缩包是指待检测依赖关系是否缺失的、包含class文件的压缩包,例如,Jar包、War包。
其中,待检测压缩包的依赖包是待检测压缩包所依赖的、包含class文件的压缩包,例如,Jar包、War包。
其中,待检测压缩包包含的类文件是指待检测压缩包包含的class文件。
其中,待检测压缩包的依赖包包含的类文件待检测压缩包的依赖包中包含的class文件。
本文中,压缩包具体可以Jar包或War包,压缩包的具体表现形式可以是待检测压缩包、也可以是依赖包。
如图3所示,步骤201之前,用户可以从多个压缩包中,例如从已发布的压缩包中、或者从待自动发布的压缩包中,选择一个压缩包作为待检测压缩包。
示例性地,为了解析出压缩包中的深层次依赖关系,会对待检测压缩包进行迭代解析,直至解析结果中不再包含依赖包。此时,步骤201中,根据Java中关于待检测压缩包的结构定义,解析出此待检测压缩包中内含的Class文件及已经打包在内的依赖包。继续对这些依赖包进行解析,得到依赖包内的Class文件和依赖包。反复迭代,直至解析结果中不再包含依赖包时,得到待检测压缩包内以及待检测压缩包的依赖包内所有的Class文件,汇总所有的Class文件得到待检测压缩包的目标类文件列表。
例如,以待检测压缩包是Jar包为例,根据Java中关于待检测Jar包的结构定义,解析出此待检测Jar包中内含的Class文件及已经打包在内的依赖Jar包。继续对这些依赖Jar包进行解析,得到依赖Jar包的Class文件和依赖Jar包。反复迭代,直至得到待检测Jar包内以及待检测Jar包的依赖Jar包内所有的Class文件。最后,结合解析结果,汇总待检测Jar包内以及待检测Jar包的依赖Jar包内所有的Class文件,得到待检测Jar包的目标类文件列表。
在一些实施例中,待检测压缩包内不包含其依赖包,此时,步骤201具体可以包括:根据Java中关于待检测压缩包的结构定义,对待检测压缩包进行解析,直接得到待检测压缩包内的所有Class文件。然后,结合解析结果,汇总待检测压缩包内的所有Class文件,得到待检测压缩包的目标类文件列表。
在一些实施例中,待检测压缩包内包含其依赖包,此时,如图4所示,步骤201具体可以包括如下步骤2011~步骤2013,其中:
2011、对所述待检测压缩包进行解析,得到所述待检测压缩包包含的第一Class文件和所述待检测压缩包的一级依赖包。
其中,第一Class文件是指对待检测压缩包进行第一次解析得到的、待检测压缩包包含的class文件。
其中,一级依赖包是指对待检测压缩包进行第一次解析得到的、待检测压缩包直接依赖的压缩包。
示例性地,根据Java中关于待检测压缩包的结构定义,对待检测压缩包进行第一次解析,解析得到待检索压缩包内的Class文件和待检索压缩包的依赖包,此时,第一次解析得到待检索压缩包内的Class文件作为待检测压缩包包含的第一Class文件、第一次解析得到待检索压缩包内的依赖包作为待检测压缩包的一级依赖包。例如,对待检索Jar包进行第一次解析得到待检索Jar包的Class文件和待检索Jar包的依赖Jar包,第一次解析得到待检索Jar包的Class文件即为待检索Jar包的第一Class文件、第一次解析得到待检索Jar包的依赖Jar包即为待检索Jar包的一级依赖包。
2012、对所述一级依赖包进行解析,得到所述一级依赖包包含的第二Class文件。
步骤2012中,对一级依赖包进行解析的方式与步骤2011中,对待检测压缩包的解析方式类似。具体地,根据Java中关于一级依赖包的结构定义,对一级依赖包进行解析,即相当于对待检测压缩包进行第二次解析,解析得到一级依赖包内的Class文件和一级依赖包的依赖包,此时,将第二次解析得到一级依赖包内的Class文件作为一级依赖包包含的第二Class文件、将第二次解析得到一级依赖包内的依赖包作为待检测压缩包的二级依赖包。例如,步骤2011中,对待检索Jar包进行第一次解析得到待检索Jar包的第一Class文件、待检索Jar包的一级依赖Jar包;步骤2012中,再对一级依赖Jar包进行解析,即相当于对待检测压缩包进行第二次解析,得到一级依赖Jar包的Class文件和一级依赖Jar包的依赖Jar包;此时,将第二次解析得到一级依赖Jar包内的Class文件作为一级依赖Jar包包含的第二Class文件、将第二次解析得到一级依赖Jar包内的依赖Jar包作为待检索Jar包的二级依赖Jar包。
2013、直至所述待检测压缩包的解析结果中不包含依赖包时,汇总得到所述待检测压缩包的目标类文件列表。
其中,所述类文件列表包含所述第一Class文件和所述第二Class文件。
当对待检测压缩包进行第二次解析的解析结果不包含依赖包时,可以对第一次解析得到的待检测压缩包包含的第一Class文件、第二次解析得到的一级依赖包包含的第二Class文件进行汇总,得到待检测压缩包的目标类文件列表,此时得到的目标类文件列表包括待检测压缩包包含的类文件和待检测压缩包的一级依赖包包含的类文件。
当对待检测压缩包进行第二次解析的解析结果包含依赖包时,即当待检测压缩包的第二解析的解析结果包含二级依赖包的依赖包(也即待检测压缩包的三级依赖包)时,根据Java中关于二级依赖包的结构定义,对二级依赖包进行解析,即相当于对待检测压缩包进行第三次解析,解析得到二级依赖包内的Class文件和二级依赖包的依赖包,此时,将第三次解析得到二级依赖包内的Class文件作为二级依赖包包含的第三Class文件、将第三次解析得到二级依赖包内的依赖包作为待检测压缩包的三级依赖包。依次类推,对待检测压缩包的三级、四级、…、n级依赖包进行解析,以循环对解析出的各依赖包进行解析,直至各依赖包的解析结果不再包含依赖包时,对第一次解析得到的第一Class文件、第二次解析得到的第二Class文件、…、第n次解析得到的第n Class文件进行汇总,得到待检测压缩包的目标类文件列表,此时得到的目标类文件列表包括待检测压缩包包含的类文件、待检测压缩包的一级依赖包包含的类文件、二级依赖包包含的类文件、…、n级依赖包包含的类文件。
以待检测压缩包是待检索Jar包为例,步骤2011~步骤2013的迭代解析过程可以如下步骤1)~3):
1)执行第i=1次压缩包解析。具体地,对待检索Jar包进行解析,得到包含多个Class文件的第i=1个类集合、以及待检索Jar包的一个Jar依赖包。
2)执行第i=2~N次压缩包解析。具体地,若解析结果中还包含Jar依赖包,则循环对解析出的Jar依赖包再次进行解析,直至第N次解析后,待检索Jar包的解析结果中不包含Jar依赖包时;此时,得到包含多个Class文件的第i=2~N个类集合。
3)汇总第i=1~N个类集合中各类集合包含的多个Class文件,得到待检索Jar包的Class文件列表,以作为待检索Jar包的目标类文件列表。
202、获取所述待检测压缩包的参考类文件列表。
其中,所述参考类文件列表包括所述待检测压缩包的各实际依赖类文件。
其中,参考类文件列表是指待检测压缩包的实际依赖类文件的集合。
其中,实际依赖类文件是指Java中关于待检测压缩包已编译的Class文件引用的其他Class文件。
步骤202中获取参考类文件列表的方式有多种,示例性地,包括:
(1)基于待检测压缩包的各已编译类文件的定义,实时进行静态分析,得到待检测压缩包的各实际依赖类文件后进行汇总,从而实时获取得到参考类文件列表。此时,步骤202具体可以包括如下步骤2021~2022,其中:
2021、根据所述待检测压缩包的各已编译类文件的定义进行静态分析,得到所述各已编译类文件的引用类文件。
其中,已编译类文件是指Java中关于待检测压缩包已编译的Class文件。
2022、将所述各已编译类文件的引用类文件作为所述待检测压缩包的实际依赖类文件进行汇总,得到所述待检测压缩包的参考类文件列表。
示例性地,如图3所示,可以根据Java中关于待检测压缩包已编译的Class文件的定义,对其进行静态分析,得到已编译的Class文件引用的其他Class关联信息。收集到所有Class文件的引用Class文件的信息,构筑成一份新的文件清单(简称为“依赖Class列表”),该“依赖Class列表”即可作为待检测压缩包的参考类文件列表。
(2)参考上述(1)中实时构建参考类文件列表,预先构建好待检测压缩包的参考类文件列表存储在预设数据库中,步骤202中,直接从预设数据库中读取得到待检测压缩包的参考类文件列表。
203、将所述参考类文件列表与所述目标类文件列表进行对比,得到所述待检测压缩包的类对比结果。
其中,类对比结果是用于指示待检测压缩包解析得到的目标类文件列表中是否存在参考文件列表中的实际依赖类文件,以及目标类文件列表中缺失的实际依赖类文件。
示例性地,如图3所示,对参考类文件列表和目标类文件列表进行比对,将参考类文件列表中存在、但是目标类文件列表中不存在的实际依赖类文件,作为待检测压缩包的依赖缺失对象。
其中,依赖缺失对象是指与待检测压缩包中的类文件存在依赖关系,但是待检测压缩包缺失的类文件。
例如,类对比结果可以是依赖缺失对象的集合,遍历参考类文件列表中的每个实际依赖类文件,将当前遍历类文件与目标类文件列表中的各类文件进行对比,若目标类文件列表不存在当前遍历类文件,则将当前遍历类文件作为依赖缺失对象加入类对比结果中,并继续遍历参考类文件列表中的实际依赖类文件;若目标类文件列表存在当前遍历类文件,则不将当前遍历类文件加入类对比结果中,并继续遍历参考类文件列表中的实际依赖类文件。如此循环,直至参考类文件列表中的各实际依赖类文件遍历完成时,得到待检测压缩包的类对比结果,类对比结果中的类文件即为待检测压缩包的依赖缺失对象。
204、若所述类对比结果指示所述目标类文件列表中不存在所述实际依赖类文件,则确定所述待检测压缩包缺失依赖关系。
示例性地,若类对比结果指示目标类文件列表中不存在参考文件列表中的一个或多个实际依赖类文件,均可以确定目标类文件列表中不存在实际依赖类文件,此时,可以确定待检查压缩包缺失依赖关系。
若类对比结果指示参考文件列表中的每个实际依赖类文件均存在于目标类文件列表中,则可以确定待检查压缩包未缺失依赖关系。
在某些情况下,如为了节省人力成本情况下压缩包(如Jar包)需要自动发布上线,为了避免压缩包中存在依赖关系缺失的情况,以保证压缩包的完整性和准确性,以有效减少项目或产品上线后才暴露出缺陷的情况,提升产品的质量,进一步地,在待检测压缩包自动发布之间检测其依赖关系是否缺失,在检测到待检测压缩包缺失依赖关系之后,限制待检测压缩包自动发布。即,在步骤204之后,该依赖缺失的检测方法还可以进一步包括:限制待检测压缩包自动发布。
进一步地,由于某些情况下某些依赖关系的缺失对待检测压缩包的部署运行的影响程度并不大,为了更智能地实现待检测压缩包的自动发布上线,还可以结合依赖关系的缺失对待检测压缩包运行的影响程度,来确定是否限制待检测压缩包的自动发布上线。此时,如图5所示,“限制待检测压缩包自动发布”具体可以包括如下步骤a1~a3,其中:
a1、基于所述类对比结果确定所述待检测压缩的依赖缺失对象。
示例性地,类对比结果可以是依赖缺失对象的集合,此时,可以读取类对比结果中的类文件,作为待检测压缩包的依赖缺失对象。可以理解的是,类对比结果中可以包括一个、两个、或多个类文件,为方便理解,本实施例中以类对比结果中只包含一个类文件,即只存在一个依赖缺失对象为例,说明如何限制待检测压缩包的自动发布。
a2、获取所述依赖缺失对象对所述待检测压缩包运行的影响程度。
示例性地,可以结合依赖缺失对象的功能对待检测压缩包功能的影响范围、依赖缺失对象的功能重要性等因素,确定依赖缺失对象对待检测压缩包运行的影响程度。
a3、若所述影响程度大于预设的第一影响程度阈值,则限制所述待检测压缩包自动发布。
其中,预设的第一影响程度阈值的具体取值可以根据实际业务需求而设置,此处对预设的第一影响程度阈值的具体取值不作限制。第一影响程度阈值与第二影响程度阈值的区别在于:第一影响程度阈值是用于指示是否限制待检测压缩包自动发布的影响程度阈值,第二影响程度阈值是用于指示是否输出修复提醒的影响程度阈值。
示例性地,若影响程度大于预设的第一影响程度阈值,则认为继续自动发布待检测压缩包会对导致项目或产品上线后暴露出缺陷的情况,或影响项目或产品的正常使用,此时限制待检测压缩包自动发布。若影响程度小于或等于预设的第一影响程度阈值,则认为依赖缺失对象对待检测压缩包的部署运行的影响程度并不大,仍然可以保持待检测压缩包的自动发布。由此,可以更加只能地维护待检测压缩包的自动发布。
例如,步骤201中可以获取待发布的Jar包作为待检测压缩包,在经过步骤202~步骤204进行检测确定待发布的Jar包缺失依赖关系之后,可以检测待发布的Jar包的依赖缺失对象对待发布的Jar包运行的影响程度;若依赖缺失对象对待发布的Jar包运行的影响程度大于预设的第一影响程度阈值,则限制待发布的Jar包的自动发布,以避免自动发布的Jar包中存在依赖关系缺失的情况,以保证自动发布的Jar包的完整性和准确性,从而可以有效减少项目或产品上线后才暴露出缺陷的情况,提升产品的质量。
进一步地,也可以对已发布上线的压缩包(如Jar包)进行检测,步骤201中通过获取已发布上线的压缩包作为待检测压缩包,通过步骤202~步骤204进行检测确定已发布上线的压缩包缺失依赖关系之后,还可以输出已发布上线的压缩包的修复提醒。如图6所示,即步骤204之后还可以进一步包括如下步骤b1~b3,其中:
b1、基于所述类对比结果确定所述待检测压缩的依赖缺失对象。
b2、获取所述依赖缺失对象对所述待检测压缩包运行的影响程度。
步骤b1~b2与上述步骤a1~a2的实现类似,具体可以参考上述步骤a1~a2的相关说明,此处不再赘述。
b3、若所述待检测压缩包已发布、且所述影响程度大于预设的第二影响程度阈值,则输出所述待检测压缩包的修复提醒。
其中,预设的第二影响程度阈值的具体取值可以根据实际业务需求而设置,此处对预设的第二影响程度阈值的具体取值不作限制。第一影响程度阈值与第二影响程度阈值的区别在于:第一影响程度阈值是用于指示是否限制待检测压缩包自动发布的影响程度阈值,第二影响程度阈值是用于指示是否输出修复提醒的影响程度阈值。
示例性地,若待检测压缩包已发布、且影响程度大于预设的第二影响程度阈值,则输出待检测压缩包的修复提醒。若待检测压缩包已发布、但影响程度小于或等于预设的第二影响程度阈值,则可以不输出待检测压缩包的修复提醒。
其中,修复提醒是用于提示维护人员对待检测压缩包缺失的依赖关系进行修复的信息,以保证再次发布上线的压缩包的完整性和准确性,提升产品的质量。修复提醒具体可以以语音、文字、视频等形式来输出,本文中对修复提醒的具体形式不做限制。
示例性地,修复提醒可以包括待检测压缩包的修复紧急程度、修复难度、依赖缺失对象等信息,以供维护人员根据修复提醒快速定位并完成压缩包的修复。此时,在步骤b3之前,该依赖缺失的检测方法还可以进一步包括如下确定待检测压缩包的修复紧急程度、修复难度的步骤c1~c3,其中:
c1、根据所述影响程度确定所述待检测压缩包的修复紧急程度。
其中,所述影响程度与所述修复紧急程度呈正关系。即,影响程度越高,修复紧急程度也越高;反之,影响程度越低,修复紧急程度也越低。
例如,影响程度x的取值范围为0≤x≤10,影响程度处于0≤x<3时,修复紧急程度为低紧急;影响程度处于3≤x<7时,修复紧急程度为中等紧急;影响程度处于x>7时,修复紧急程度为高紧急。若步骤b2中确定影响程度为6,则可以确定待检测压缩包的修复紧急程度为中等紧急。
c2、获取所述依赖缺失对象的依赖关系复杂度和所述依赖缺失对象的完整程度。
其中,依赖关系复杂度用于指示依赖缺失对象所依赖的类文件的复杂度,示例性地,可以根据依赖缺失对象所依赖的类文件的数量等,确定依赖缺失对象的依赖关系复杂度。
其中,完整程度用于指示依赖缺失对象是否完整、依赖缺失对象缺失内容的多少。示例性地,可以基于依赖缺失对象是否完整、缺失内容的多少等,来确定依赖缺失对象的完整程度。
c3、基于所述依赖关系复杂度和所述完整程度,确定所述待检测压缩包的修复难度。
其中,依赖关系复杂度与修复难度呈正关系,即依赖关系复杂度越高,修复难度也越高;反之,依赖关系复杂度越低,修复难度也越低。
其中,完整程度与修复难度呈反关系,即完整程度越高,修复难度越低;反之,完整程度越低,修复难度越高。
示例性地,首先,根据依赖关系复杂度确定待检测压缩包的第一修复难度;然后,根据完整程度确定待检测压缩包的第二修复难度;然后,按照预设权重比,将第一修复难度和第二修复难度求加和结果,作为待检测压缩包最终的修复难度。
进一步地,为了避免待检测压缩包存在冗余信息,还可以对待检测压缩包或待检测压缩包的依赖包中冗余的类文件进行滤除。例如,基于所述目标类文件列表,检测所述待检测压缩包的同一依赖包内是否存在至少两个相同的类文件;若所述待检测压缩包的同一依赖包内存在至少两个相同的类文件,则对所述同一依赖包内的至少两个相同的类文件进行滤除,以滤除所述待检测压缩包的同一依赖包的冗余文件。从而,使得同一依赖包内的至少两个相同类文件只保留一个,从而避免同一依赖包的信息冗余,进而避免待检测压缩包的信息冗余,简化待检测压缩包。
由以上内容可以看出,第一方面,通过对待检测压缩包进行解析得到待检测压缩包的目标类文件列表,由于解析得到的目标类文件列表包括了待检测压缩包包含的类文件以及待检测压缩包的依赖包包含的类文件,因此,使得待检测压缩包深层次的依赖关系可以解析出来;第二方面,由于待检测压缩包的参考类文件列表包含了待检测压缩包的各实际依赖类文件;因此,通过参考类文件列表与目标类文件列表进行对比得到待检测压缩包的类对比结果,在类对比结果指示目标类文件列表中不存在实际依赖类文件时,确定待检测压缩包缺失依赖关系,可以有效地检查出待检测压缩包中深层次的依赖缺失情况,从而准确地确定如Jar包等压缩包内的依赖缺失情况。
为了更好地实施以上方法,本申请实施例还提供一种依赖缺失的检测装置,该依赖缺失的检测装置具体可以集成在电子设备中,比如,计算机设备,该计算机设备可以为终端、服务器等设备。
其中,终端可以为手机、平板电脑、智能蓝牙设备、笔记本电脑、个人电脑等设备;服务器可以是单一服务器,也可以是由多个服务器组成的服务器集群。
比如,在本实施例中,将以依赖缺失的检测装置具体集成在计算机为例,对本申请实施例的方法进行详细说明。
例如,如图7所示,该依赖缺失的检测装置700可以包括:
解析单元701,用于对待检测压缩包进行解析,得到所述待检测压缩包的目标类文件列表,其中,所述目标类文件列表包括所述待检测压缩包包含的类文件和所述待检测压缩包的依赖包包含的类文件;
获取单元702,用于获取所述待检测压缩包的参考类文件列表,其中,所述参考类文件列表包括所述待检测压缩包的各实际依赖类文件;
对比单元703,用于将所述参考类文件列表与所述目标类文件列表进行对比,得到所述待检测压缩包的类对比结果;
确定单元704,用于若所述类对比结果指示所述目标类文件列表中不存在所述实际依赖类文件,则确定所述待检测压缩包缺失依赖关系。
在一些实施例中,所述解析单元701具体用于:
对所述待检测压缩包进行解析,得到所述待检测压缩包包含的第一Class文件和所述待检测压缩包的一级依赖包;
对所述一级依赖包进行解析,得到所述一级依赖包包含的第二Class文件;
直至所述待检测压缩包的解析结果中不包含依赖包时,汇总得到所述待检测压缩包的目标类文件列表,其中,所述类文件列表包含所述第一Class文件和所述第二Class文件。
在一些实施例中,所述对待检测压缩包进行解析,得到所述待检测压缩包的目标类文件列表之前,所述解析单元701具体用于:
获取待发布的Jar包,以作为所述待检测压缩包;
在一些实施例中,所述依赖缺失的检测装置700还包括发布单元(图中未示出),所述若所述类对比结果指示所述目标类文件列表中不存在所述实际依赖类文件,则确定所述待检测压缩包缺失依赖关系之后,所述发布单元具体用于:
基于所述类对比结果确定所述待检测压缩的依赖缺失对象;
获取所述依赖缺失对象对所述待检测压缩包运行的影响程度;
若所述影响程度大于预设的第一影响程度阈值,则限制所述待检测压缩包自动发布。
在一些实施例中,所述依赖缺失的检测装置700还包括滤除单元(图中未示出),所述滤除单元具体用于:
基于所述目标类文件列表,检测所述待检测压缩包的同一依赖包内是否存在至少两个相同的类文件;
若所述待检测压缩包的同一依赖包内存在至少两个相同的类文件,则对所述同一依赖包内的至少两个相同的类文件进行滤除,以滤除所述待检测压缩包的同一依赖包的冗余文件。
在一些实施例中,所述依赖缺失的检测装置700还包括提醒单元(图中未示出),所述若所述类对比结果指示所述目标类文件列表中不存在所述实际依赖类文件,则确定所述待检测压缩包缺失依赖关系之后,所述提醒单元具体用于:
基于所述类对比结果确定所述待检测压缩的依赖缺失对象;
获取所述依赖缺失对象对所述待检测压缩包运行的影响程度;
若所述待检测压缩包已发布、且所述影响程度大于预设的第二影响程度阈值,则输出所述待检测压缩包的修复提醒。
在一些实施例中,所述修复提醒包括所述待检测压缩包的修复紧急程度和修复难度,所述提醒单元具体用于:
根据所述影响程度确定所述待检测压缩包的修复紧急程度,其中,所述影响程度与所述修复紧急程度呈正关系;
获取所述依赖缺失对象的依赖关系复杂度和所述依赖缺失对象的完整程度;
基于所述依赖关系复杂度和所述完整程度,确定所述待检测压缩包的修复难度。
在一些实施例中,所述获取单元702具体用于:
根据所述待检测压缩包的各已编译类文件的定义进行静态分析,得到所述各已编译类文件的引用类文件;
将所述各已编译类文件的引用类文件作为所述待检测压缩包的实际依赖类文件进行汇总,得到所述待检测压缩包的参考类文件列表。
由此,本申请实施例提供的依赖缺失的检测装置700可以带来如下技术效果:第一方面,通过对待检测压缩包进行解析得到待检测压缩包的目标类文件列表,由于解析得到的目标类文件列表包括了待检测压缩包包含的类文件以及待检测压缩包的依赖包包含的类文件,因此,使得待检测压缩包深层次的依赖关系可以解析出来;第二方面,由于待检测压缩包的参考类文件列表包含了待检测压缩包的各实际依赖类文件;因此,通过参考类文件列表与目标类文件列表进行对比得到待检测压缩包的类对比结果,在类对比结果指示目标类文件列表中不存在实际依赖类文件时,确定待检测压缩包缺失依赖关系,可以有效地检查出待检测压缩包中深层次的依赖缺失情况,从而准确地确定如Jar包等压缩包内的依赖缺失情况。
相应的,本申请实施例还提供一种电子设备,该电子设备可以为终端,该终端可以为智能手机、平板电脑、笔记本电脑、触控屏幕、游戏机、个人计算机(PC,PersonalComputer)、个人数字助理(Personal Digital Assistant,PDA)等终端设备。如图8所示,图8为本申请实施例提供的电子设备的结构示意图。该电子设备800包括有一个或者一个以上处理核心的处理器801、有一个或一个以上计算机可读存储介质的存储器802及存储在存储器802上并可在处理器上运行的计算机程序。其中,处理器801与存储器802电性连接。本领域技术人员可以理解,图中示出的电子设备结构并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
处理器801是电子设备800的控制中心,利用各种接口和线路连接整个电子设备800的各个部分,通过运行或加载存储在存储器802内的软件程序和/或模块,以及调用存储在存储器802内的数据,执行电子设备800的各种功能和处理数据,从而对电子设备800进行整体监控。
在本申请实施例中,电子设备800中的处理器801会按照如下的步骤,将一个或一个以上的应用程序的进程对应的指令加载到存储器802中,并由处理器801来运行存储在存储器802中的应用程序,从而实现各种功能:
对待检测压缩包进行解析,得到所述待检测压缩包的目标类文件列表,其中,所述目标类文件列表包括所述待检测压缩包包含的类文件和所述待检测压缩包的依赖包包含的类文件;
获取所述待检测压缩包的参考类文件列表,其中,所述参考类文件列表包括所述待检测压缩包的各实际依赖类文件;
将所述参考类文件列表与所述目标类文件列表进行对比,得到所述待检测压缩包的类对比结果;
若所述类对比结果指示所述目标类文件列表中不存在所述实际依赖类文件,则确定所述待检测压缩包缺失依赖关系。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
由此,本申请实施例提供的电子设备800可以带来如下技术效果:第一方面,通过对待检测压缩包进行解析得到待检测压缩包的目标类文件列表,由于解析得到的目标类文件列表包括了待检测压缩包包含的类文件以及待检测压缩包的依赖包包含的类文件,因此,使得待检测压缩包深层次的依赖关系可以解析出来;第二方面,由于待检测压缩包的参考类文件列表包含了待检测压缩包的各实际依赖类文件;因此,通过参考类文件列表与目标类文件列表进行对比得到待检测压缩包的类对比结果,在类对比结果指示目标类文件列表中不存在实际依赖类文件时,确定待检测压缩包缺失依赖关系,可以有效地检查出待检测压缩包中深层次的依赖缺失情况,从而准确地确定如Jar包等压缩包内的依赖缺失情况。
可选的,如图8所示,电子设备800还包括:触控显示屏803、射频电路804、音频电路805、输入单元806以及电源808。其中,处理器801分别与触控显示屏803、射频电路804、音频电路805、输入单元806以及电源807电性连接。本领域技术人员可以理解,图8中示出的电子设备结构并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
触控显示屏803可用于显示图形用户界面以及接收用户作用于图形用户界面产生的操作指令。触控显示屏803可以包括显示面板和触控面板。其中,显示面板可用于显示由用户输入的信息或提供给用户的信息以及电子设备的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。可选的,可以采用液晶显示器(LCD,Liquid Crystal Display)、有机发光二极管(OLED,Organic Light-Emitting Diode)等形式来配置显示面板。触控面板可用于收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板上或在触控面板附近的操作),并生成相应的操作指令,且操作指令执行对应程序。可选的,触控面板可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器801,并能接收处理器801发来的命令并加以执行。触控面板可覆盖显示面板,当触控面板检测到在其上或附近的触摸操作后,传送给处理器801以确定触摸事件的类型,随后处理器801根据触摸事件的类型在显示面板上提供相应的视觉输出。在本申请实施例中,可以将触控面板与显示面板集成到触控显示屏803而实现输入和输出功能。但是在某些实施例中,触控面板与触控面板可以作为两个独立的部件来实现输入和输出功能。即触控显示屏803也可以作为输入单元806的一部分实现输入功能。
射频电路804可用于收发射频信号,以通过无线通信与网络设备或其他电子设备建立无线通讯,与网络设备或其他电子设备之间收发信号。
音频电路805可以用于通过扬声器、传声器提供用户与电子设备之间的音频接口。音频电路805可将接收到的音频数据转换后的电信号,传输到扬声器,由扬声器转换为声音信号输出;另一方面,传声器将收集的声音信号转换为电信号,由音频电路805接收后转换为音频数据,再将音频数据输出处理器801处理后,经射频电路804以发送给比如另一电子设备,或者将音频数据输出至存储器802以便进一步处理。音频电路805还可能包括耳塞插孔,以提供外设耳机与电子设备的通信。
输入单元806可用于接收输入的数字、字符信息或用户特征信息(例如指纹、虹膜、面部信息等),以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
电源808用于给电子设备800的各个部件供电。可选的,电源808可以通过电源管理系统与处理器801逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源807还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
尽管图8中未示出,电子设备800还可以包括摄像头、传感器、无线保真模块、蓝牙模块等,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
由上可知,本实施例提供的电子设备可以带来如下技术效果:由于可以从待评估业务单的目标图像自动提取可用于指示待评估业务单的质量的目标指标信息,对待评估业务单的质量进行评估,因此,可以有效快速地对业务单进行质量评估,提高业务单的质量评估效率。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本申请实施例提供一种计算机可读存储介质,其中存储有多条计算机程序,该计算机程序能够被处理器进行加载,以执行本申请实施例所提供的任一种依赖缺失的检测方法中的步骤。例如,该计算机程序可以执行如下步骤:
对待检测压缩包进行解析,得到所述待检测压缩包的目标类文件列表,其中,所述目标类文件列表包括所述待检测压缩包包含的类文件和所述待检测压缩包的依赖包包含的类文件;
获取所述待检测压缩包的参考类文件列表,其中,所述参考类文件列表包括所述待检测压缩包的各实际依赖类文件;
将所述参考类文件列表与所述目标类文件列表进行对比,得到所述待检测压缩包的类对比结果;
若所述类对比结果指示所述目标类文件列表中不存在所述实际依赖类文件,则确定所述待检测压缩包缺失依赖关系。
可见,计算机程序能够被处理器进行加载,以执行本申请实施例所提供的任一种依赖缺失的检测方法中的步骤,从而带来如下技术效果:第一方面,通过对待检测压缩包进行解析得到待检测压缩包的目标类文件列表,由于解析得到的目标类文件列表包括了待检测压缩包包含的类文件以及待检测压缩包的依赖包包含的类文件,因此,使得待检测压缩包深层次的依赖关系可以解析出来;第二方面,由于待检测压缩包的参考类文件列表包含了待检测压缩包的各实际依赖类文件;因此,通过参考类文件列表与目标类文件列表进行对比得到待检测压缩包的类对比结果,在类对比结果指示目标类文件列表中不存在实际依赖类文件时,确定待检测压缩包缺失依赖关系,可以有效地检查出待检测压缩包中深层次的依赖缺失情况,从而准确地确定如Jar包等压缩包内的依赖缺失情况。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
其中,该计算机可读存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
由于该计算机可读存储介质中所存储的计算机程序,可以执行本申请实施例所提供的任一种依赖缺失的检测方法中的步骤,因此,可以实现本申请实施例所提供的任一种依赖缺失的检测方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
以上对本申请实施例所提供的一种依赖缺失的检测方法、装置、电子设备和计算机可读存储介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (10)

1.一种依赖缺失的检测方法,其特征在于,所述方法包括:
对待检测压缩包进行解析,得到所述待检测压缩包的目标类文件列表,其中,所述目标类文件列表包括所述待检测压缩包包含的类文件和所述待检测压缩包的依赖包包含的类文件;
获取所述待检测压缩包的参考类文件列表,其中,所述参考类文件列表包括所述待检测压缩包的各实际依赖类文件;
将所述参考类文件列表与所述目标类文件列表进行对比,得到所述待检测压缩包的类对比结果;
若所述类对比结果指示所述目标类文件列表中不存在所述实际依赖类文件,则确定所述待检测压缩包缺失依赖关系。
2.根据权利要求1所述的依赖缺失的检测方法,其特征在于,所述对待检测压缩包进行解析,得到所述待检测压缩包的目标类文件列表,包括:
对所述待检测压缩包进行解析,得到所述待检测压缩包包含的第一Class文件和所述待检测压缩包的一级依赖包;
对所述一级依赖包进行解析,得到所述一级依赖包包含的第二Class文件;
直至所述待检测压缩包的解析结果中不包含依赖包时,汇总得到所述待检测压缩包的目标类文件列表,其中,所述类文件列表包含所述第一Class文件和所述第二Class文件。
3.根据权利要求1所述的依赖缺失的检测方法,其特征在于,所述对待检测压缩包进行解析,得到所述待检测压缩包的目标类文件列表之前,还包括:
获取待发布的Jar包,以作为所述待检测压缩包;
所述若所述类对比结果指示所述目标类文件列表中不存在所述实际依赖类文件,则确定所述待检测压缩包缺失依赖关系之后,还包括:
基于所述类对比结果确定所述待检测压缩的依赖缺失对象;
获取所述依赖缺失对象对所述待检测压缩包运行的影响程度;
若所述影响程度大于预设的第一影响程度阈值,则限制所述待检测压缩包自动发布。
4.根据权利要求1所述的依赖缺失的检测方法,其特征在于,所述方法还包括:
基于所述目标类文件列表,检测所述待检测压缩包的同一依赖包内是否存在至少两个相同的类文件;
若所述待检测压缩包的同一依赖包内存在至少两个相同的类文件,则对所述同一依赖包内的至少两个相同的类文件进行滤除,以滤除所述待检测压缩包的同一依赖包的冗余文件。
5.根据权利要求1所述的依赖缺失的检测方法,其特征在于,所述若所述类对比结果指示所述目标类文件列表中不存在所述实际依赖类文件,则确定所述待检测压缩包缺失依赖关系之后,还包括:
基于所述类对比结果确定所述待检测压缩的依赖缺失对象;
获取所述依赖缺失对象对所述待检测压缩包运行的影响程度;
若所述待检测压缩包已发布、且所述影响程度大于预设的第二影响程度阈值,则输出所述待检测压缩包的修复提醒。
6.根据权利要求5所述的依赖缺失的检测方法,其特征在于,所述修复提醒包括所述待检测压缩包的修复紧急程度和修复难度,所述方法还包括:
根据所述影响程度确定所述待检测压缩包的修复紧急程度,其中,所述影响程度与所述修复紧急程度呈正关系;
获取所述依赖缺失对象的依赖关系复杂度和所述依赖缺失对象的完整程度;
基于所述依赖关系复杂度和所述完整程度,确定所述待检测压缩包的修复难度。
7.根据权利要求1-6任一项所述的依赖缺失的检测方法,其特征在于,所述获取所述待检测压缩包的参考类文件列表,包括:
根据所述待检测压缩包的各已编译类文件的定义进行静态分析,得到所述各已编译类文件的引用类文件;
将所述各已编译类文件的引用类文件作为所述待检测压缩包的实际依赖类文件进行汇总,得到所述待检测压缩包的参考类文件列表。
8.一种依赖缺失的检测装置,其特征在于,所述依赖缺失的检测装置包括:
解析单元,用于对待检测压缩包进行解析,得到所述待检测压缩包的目标类文件列表,其中,所述目标类文件列表包括所述待检测压缩包包含的类文件和所述待检测压缩包的依赖包包含的类文件;
获取单元,用于获取所述待检测压缩包的参考类文件列表,其中,所述参考类文件列表包括所述待检测压缩包的各实际依赖类文件;
对比单元,用于将所述参考类文件列表与所述目标类文件列表进行对比,得到所述待检测压缩包的类对比结果;
确定单元,用于若所述类对比结果指示所述目标类文件列表中不存在所述实际依赖类文件,则确定所述待检测压缩包缺失依赖关系。
9.一种电子设备,其特征在于,包括处理器和存储器,所述存储器中存储有计算机程序,所述处理器调用所述存储器中的计算机程序时执行如权利要求1至7任一项所述的依赖缺失的检测方法。
10.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,所述计算机程序被处理器进行加载,以执行权利要求1至7任一项所述的依赖缺失的检测方法中的步骤。
CN202210684844.7A 2022-06-16 2022-06-16 依赖缺失的检测方法、装置、电子设备及存储介质 Pending CN115202716A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210684844.7A CN115202716A (zh) 2022-06-16 2022-06-16 依赖缺失的检测方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210684844.7A CN115202716A (zh) 2022-06-16 2022-06-16 依赖缺失的检测方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN115202716A true CN115202716A (zh) 2022-10-18

Family

ID=83576830

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210684844.7A Pending CN115202716A (zh) 2022-06-16 2022-06-16 依赖缺失的检测方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN115202716A (zh)

Similar Documents

Publication Publication Date Title
CN108268366B (zh) 测试用例执行方法及装置
CN111666222A (zh) 一种测试方法和相关装置
CN108446207B (zh) 计算机系统容灾能力评估方法、装置及系统
CN114398354A (zh) 数据监测方法、装置、电子设备及存储介质
CN112313627A (zh) 事件到无服务器函数工作流实例的映射机制
CN112100239A (zh) 车辆检测设备画像生成方法、装置、服务器及可读存储介质
CN110502345A (zh) 一种过载保护方法、装置、计算机设备及存储介质
CN109634838A (zh) 定位应用程序故障的方法、装置、存储介质和电子设备
CN112817582A (zh) 代码处理方法、装置、计算机设备和存储介质
CN115202716A (zh) 依赖缺失的检测方法、装置、电子设备及存储介质
CN113419894B (zh) 数据检验方法、装置、存储介质及计算机设备
CN114579136A (zh) 代码处理方法、装置、计算机设备和存储介质
CN113742116A (zh) 一种异常定位方法及装置、设备、存储介质
CN112286826B (zh) 一种vts测试方法、装置、存储介质及计算机设备
CN108287860A (zh) 模型生成方法、垃圾文件识别方法及装置
CN117061314A (zh) 异常告警的判别方法、装置及可读存储介质
CN114691145A (zh) 代码处理方法、装置、计算机设备和存储介质
CN117668387A (zh) 路由信息展示方法、装置、电子设备及存储介质
CN117149606A (zh) 测试用例排序方法、装置、电子设备和存储介质
CN114594979A (zh) 资源文件更新方法、装置、存储介质及终端设备
CN115344413A (zh) 账单异常问题定位方法、装置、介质及设备
CN113806362A (zh) 测试记录信息的生成方法、装置、计算机设备和存储介质
CN115687393A (zh) 一种数据导出方法、装置、计算机设备及存储介质
CN116128123A (zh) 指标的校验方法及装置
CN116401164A (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