CN116820477A - 一种依赖管理方法、装置、电子设备及存储介质 - Google Patents

一种依赖管理方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN116820477A
CN116820477A CN202310697416.2A CN202310697416A CN116820477A CN 116820477 A CN116820477 A CN 116820477A CN 202310697416 A CN202310697416 A CN 202310697416A CN 116820477 A CN116820477 A CN 116820477A
Authority
CN
China
Prior art keywords
version
dependency
item
dependence
document
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
CN202310697416.2A
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.)
Bank of China Ltd
Original Assignee
Bank of China 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 Bank of China Ltd filed Critical Bank of China Ltd
Priority to CN202310697416.2A priority Critical patent/CN116820477A/zh
Publication of CN116820477A publication Critical patent/CN116820477A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/43Checking; Contextual analysis
    • G06F8/433Dependency analysis; Data or control flow analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Abstract

本申请公开了一种依赖管理方法、装置、电子设备及存储介质,可应用于云计算领域、大数据领域、物联网领域或金融领域。该方法中,在项目运行错误时,分析项目的错误信息;在错误信息指示项目存在依赖冲突时,获得与依赖冲突对应的第一依赖和第一版本,第一版本用于表征第一依赖的版本信息;基于预设依赖关系文档,获取与第一版本关联的第二版本,预设依赖关系文档包括与第一依赖对应的多个依赖版本,多个依赖版本包括第一版本和第二版本;显示第二版本。如此,在项目出现依赖冲突时,获取造成依赖冲突的第一依赖及第一版本,然后基于预设依赖关系文档推荐与第一版本关联的第二版本,一定程度上减少了开发人员查找和调试的时间,提升了开发效率。

Description

一种依赖管理方法、装置、电子设备及存储介质
技术领域
本申请涉及物联网技术领域,特别是涉及一种依赖管理方法、装置、电子设备及存储介质。
背景技术
在开发人员编写程序时,需要添加各种依赖来调用相应的类或方法。但是,经常会碰到依赖版本冲突或者依赖不兼容的问题,需要选择合适的依赖版本并更改。
然而,基于目前的现有技术,开发人员只能通过个人经验或者自行查找资料来获取合适的依赖版本,使得开发效率大大降低。
发明内容
本申请提供了一种依赖管理方法、装置、电子设备及存储介质,能够辅助开发人员编写程序,提高开发效率。
第一方面,本申请提供了一种依赖管理方法,所述方法包括:
在项目运行错误时,分析所述项目的错误信息;
在所述错误信息指示所述项目存在依赖冲突时,获得与所述依赖冲突对应的第一依赖和第一版本,所述第一版本用于表征所述第一依赖的版本信息;
基于预设依赖关系文档,获取与所述第一版本关联的第二版本,所述预设依赖关系文档包括与所述第一依赖对应的多个依赖版本,多个所述依赖版本包括所述第一版本和所述第二版本;
显示所述第二版本。
可选地,所述方法还包括:
基于应用程序编程接口文档,对所述第一版本和所述第二版本进行对比分析,获得差异结果;
在所述项目中标注与所述差异结果对应的源代码。
可选地,所述方法还包括:
获取所述项目的依赖集合;
基于所述预设依赖关系文档,获取所述依赖集合中各依赖的连接关系;
显示所述连接关系对应的图谱,所述图谱包括所述依赖集合中各依赖的版本信息。
可选地,所述方法还包括:
在所述错误信息指示所述项目存在依赖下载失败时,检测所述项目对应的本地依赖仓库;
若所述本地依赖仓库包括临时文件,则删除所述临时文件。
可选地,所述项目包括项目对象模型POM,所述POM包括所述第一依赖。
可选地,所述方法还包括:
定位所述POM中的所述第一依赖,将所述第一版本修改为所述第二版本。
可选地,所述方法还包括:
在所述错误信息指示所述项目存在依赖重复项时,获得与所述依赖重复项对应的第二依赖和第三依赖;
获取第三版本和第四版本,所述第三版本用于表征所述第二依赖的版本信息,第四版本用于表征所述第三依赖的版本信息;
对所述第三版本和所述第四版本进行对比,获得对比结果;
在所述对比结果指示所述第三版本与所述第四版本一致时,删除所述POM中的所述第二依赖或所述第三依赖。
可选地,所述方法还包括:
在所述对比结果指示所述第三版本与所述第四版本不一致时,在所述POM中标注所述第二依赖和所述第三依赖。
第二方面,本申请实施例还提供了一种依赖管理装置,其特征在于,所述装置包括:
分析单元,用于在项目运行错误时,分析所述项目的错误信息;
获得单元,用于在所述错误信息指示所述项目存在依赖冲突时,获得与所述依赖冲突对应的第一依赖和第一版本,所述第一版本用于表征所述第一依赖的版本信息;
获取单元,用于基于预设依赖关系文档,获取与所述第一版本关联的第二版本,所述预设依赖关系文档包括与所述第一依赖对应的多个依赖版本,多个所述依赖版本包括所述第一版本和所述第二版本;
显示单元,用于显示所述第二版本。
可选地,所述装置还包括标注单元,所述标注单元具体用于:
基于应用程序编程接口文档,对所述第一版本和所述第二版本进行对比分析,获得差异结果;
在所述项目中标注与所述差异结果对应的源代码。
可选地,所述装置还包括图谱显示单元,所述图谱显示单元具体用于:
获取所述项目的依赖集合;
基于所述预设依赖关系文档,获取所述依赖集合中各依赖的连接关系;
显示所述连接关系对应的图谱,所述图谱包括所述依赖集合中各依赖的版本信息。
可选地,所述装置还包括删除单元,所述删除单元具体用于:
在所述错误信息指示所述项目存在依赖下载失败时,检测所述项目对应的本地依赖仓库;
若所述本地依赖仓库包括临时文件,则删除所述临时文件。
可选地,所述项目包括项目对象模型POM,所述POM包括所述第一依赖。
可选地,所述装置还包括修改单元,所述修改单元具体用于:
定位所述POM中的所述第一依赖,将所述第一版本修改为所述第二版本。
可选地,所述删除单元,还用于:
在所述错误信息指示所述项目存在依赖重复项时,获得与所述依赖重复项对应的第二依赖和第三依赖;
获取第三版本和第四版本,所述第三版本用于表征所述第二依赖的版本信息,第四版本用于表征所述第三依赖的版本信息;
对所述第三版本和所述第四版本进行对比,获得对比结果;
在所述对比结果指示所述第三版本与所述第四版本一致时,删除所述POM中的所述第二依赖或所述第三依赖。
可选地,所述标注单元,还用于在所述对比结果指示所述第三版本与所述第四版本不一致时,在所述POM中标注所述第二依赖和所述第三依赖。
第三方面,本申请实施例还提供了一种依赖管理插件,所述插件包括错误分析模块,冲突处理模块和图谱显示模块,其中:
所述错误分析模块,用于在项目运行错误时,分析所述项目的错误信息;
所述冲突处理模块,用于在所述错误信息指示所述项目存在依赖冲突时,获得与所述依赖冲突对应的第一依赖和第一版本,所述第一版本用于表征所述第一依赖的版本信息;基于预设依赖关系文档,获取与所述第一版本关联的第二版本,所述预设依赖关系文档包括与所述第一依赖对应的多个依赖版本,多个所述依赖版本包括所述第一版本和所述第二版本;
所述图谱显示模块,用于显示所述第二版本。
可选地,所述图谱显示模块还用于:
获取所述项目的依赖集合;基于所述预设依赖关系文档,获取所述依赖集合中各依赖的连接关系;显示所述连接关系对应的图谱,所述图谱包括所述依赖集合中各依赖的版本信息。
可选地,所述插件还包括:
失败处理模块,用于在所述错误信息指示所述项目存在依赖下载失败时,检测所述项目对应的本地依赖仓库;若所述本地依赖仓库包括临时文件,则删除所述临时文件。
可选地,所述插件还包括:
重复处理模块,用于在所述错误信息指示所述项目存在依赖重复项时,获得与所述依赖重复项对应的第二依赖和第三依赖;获取第三版本和第四版本,所述第三版本用于表征所述第二依赖的版本信息,第四版本用于表征所述第三依赖的版本信息;对所述第三版本和所述第四版本进行对比,获得对比结果;在所述对比结果指示所述第三版本与所述第四版本一致时,删除所述POM中的所述第二依赖或所述第三依赖。
第四方面,本申请还提供了一种电子设备,所述电子设备包括处理器以及存储器:
所述存储器用于存储计算机程序;
所述处理器用于根据所述计算机程序执行上述第一方面提供的所述依赖管理方法。
第五方面,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机程序,所述计算机程序用于执行上述第一方面提供的所述依赖管理方法。
由此可见,本申请具有如下有益效果:
本申请提供了一种依赖管理方法、装置、电子设备及存储介质,该方法包括:在项目运行错误时,分析项目的错误信息;在错误信息指示项目存在依赖冲突时,获得与依赖冲突对应的第一依赖和第一版本,第一版本用于表征第一依赖的版本信息;基于预设依赖关系文档,获取与第一版本关联的第二版本,预设依赖关系文档包括与第一依赖对应的多个依赖版本,多个依赖版本包括第一版本和第二版本;显示第二版本。如此,在项目出现依赖冲突时,获取造成依赖冲突的第一依赖及第一版本,然后基于预设依赖关系文档选取与第一版本关联的第二版本,并显示给开发人员,一定程度上减少了开发人员查找和调试的时间,提升了开发效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种依赖管理插件100的结构示意图;
图2为本申请实施例中一种依赖管理方法的流程示意图;
图3为本申请实施例提供的一种依赖管理装置300的结构示意图;
图4为本申请实施例提供的一种电子设备400的结构示意图。
具体实施方式
本申请实施例涉及的多个,是指大于或等于两个。需要说明的是,在本申请实施例的描述中,“第一”、“第二”等词汇,仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。
需要说明的是,本申请的一种依赖管理方法、装置、电子设备及存储介质可用于云计算领域、大数据领域、物联网领域或金融领域,也可用于除云计算领域、大数据领域、物联网领域、金融领域之外的任意领域。上述仅为示例,并不对本申请的一种依赖管理方法、装置、电子设备及存储介质的应用领域进行限定。
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请实施例作进一步详细的说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本申请,并非对本申请的限定。另外,还需要说明的是,为便于描述,附图中仅示出了与本申请相关的部分,并非全部结构。
通常,在开发人员编写程序时,需要添加各种依赖来调用相应的类或方法。但是,经常会碰到依赖版本冲突或者依赖不兼容的问题,需要选择合适的依赖版本并更改。基于目前的现有技术,Diagrams有依赖关系图展示,会显示当前项目中引入的依赖关系,然而,当依赖冲突时,不会给开发人员推荐合适的修改版本,需要开发人员自己解决。通常,开发人员只能通过个人经验或者自行查找资料(例如,在官网或社区搜寻相应冲突的解决办法)来获取合适的依赖版本,耗时耗力,开发效率较低。
基于此,本申请实施例提供了一种依赖管理方法,该方法包括:在项目运行错误时,分析项目的错误信息;在错误信息指示项目存在依赖冲突时,获得与依赖冲突对应的第一依赖和第一版本,第一版本用于表征第一依赖的版本信息;基于预设依赖关系文档,获取与第一版本关联的第二版本,预设依赖关系文档包括与第一依赖对应的多个依赖版本,多个依赖版本包括第一版本和第二版本;显示第二版本。
如此,在项目出现依赖冲突时,获取造成依赖冲突的第一依赖及第一版本,然后基于预设依赖关系文档选取与第一版本关联的第二版本,并显示给开发人员,一定程度上减少了开发人员查找合适依赖版本和调试项目的时间,提升了开发人员的开发效率。
为便于理解本申请实施例提供的依赖管理方法的具体实现,下面将结合附图进行说明。
需要说明的是,实现该依赖管理方法的主体可以为本申请实施例提供的依赖管理插件,此外,也可以是依赖管理装置,该依赖管理装置可以承载于电子设备或电子设备的功能模块中。本申请实施例中的电子设备,可以是任意的能够实施本申请实施例中的依赖管理方法的设备,例如可以是物联网(InternetofThings,IoT)设备。
请参见图1,图1为本申请实施例提供的一种依赖管理插件100的结构示意图,在具体应用过程中,该依赖管理插件100可以应用于例如IntelliJIDEA(简称IDEA)和Eclipse等开发平台。通常,基于IDEA开发平台以SpringBoot框架来搭建一个Maven项目,在搭建Maven项目过程中,需要引入相关依赖来调用类中的方法,依赖管理插件100可以理解为是帮助开发人员更高效的管理开发项目中依赖的工具,进而使得开发人员编码效率提高。
需要说明的是,该依赖管理插件100包括错误分析模块101,冲突处理模块102和图谱显示模块103,其中:
错误分析模块101,用于在项目运行错误时,分析项目的错误信息,向冲突处理模块102发送指示依赖冲突的错误信息;冲突处理模块102,用于在错误信息指示项目存在依赖冲突时,获得与依赖冲突对应的第一依赖和第一版本,第一版本用于表征第一依赖的版本信息;基于预设依赖关系文档,获取与第一版本关联的第二版本,预设依赖关系文档包括与第一依赖对应的多个依赖版本,多个依赖版本包括第一版本和第二版本;图谱显示模块103,用于接收冲突处理模块102获取的第二版本并显示第二版本。
需要说明的是,在开发过程中创建Maven项目,该Maven项目是基于项目对象模型(ProjectObjectModel,POM)模式实现的,因为POM的格式是xml,所以也称为POM.xml。POM.xml中包括该Maven项目所需的依赖及对应依赖版本,在添加依赖代码后,项目联网从Maven仓库(例如官方Maven仓、阿里Maven仓)中下载相应的jar包文件。
在一些实现方式中,为了方便开发人员开发,图谱显示模块103还用于获取项目的依赖集合(例如从POM.xml中获取依赖);基于预设依赖关系文档,获取依赖集合中各依赖的连接关系;显示连接关系对应的图谱,图谱包括依赖集合中各依赖的版本信息和jar包文件的路径。
在另一些实现方式中,该插件100还包括:重复处理模块104,用于接收错误分析模块101发送的指示项目存在依赖重复项的错误信息,获得与依赖重复项对应的第二依赖和第三依赖;获取第三版本和第四版本,第三版本用于表征第二依赖的版本信息,第四版本用于表征第三依赖的版本信息;对第三版本和第四版本进行对比,获得对比结果;在对比结果指示第三版本与第四版本一致时,删除POM.xml中的第二依赖或第三依赖。
在其他实现方式中,该插件100还包括:错误信息模块101在分析获得错误信息指示项目存在依赖下载失败后,向失败处理模块105发送检测指令,以便失败处理模块105检测项目对应的本地依赖仓库;若本地依赖仓库包括临时文件,则删除临时文件。
如此,通过本申请实施例提供的依赖管理插件,不仅可以通过图谱的方式显示项目中各依赖的连接关系、版本情况、依赖jar包路径,而且,可以在项目报错时,根据错误信息调用相应的模块;在依赖冲突时,获取依赖的推荐版本;在依赖重复时,自动删除依赖;在依赖下载失败时,删除本地依赖仓库的临时文件,辅助开发人员编程,提高了开发人员的开发效率。
请参见图2,图2为本申请实施例提供的依赖管理方法的流程示意图。该依赖管理方法可以应用于依赖管理插件,该依赖管理插件例如可以是图1的依赖管理插件100。或者,该依赖管理方法可以理解为应用于依赖管理装置,该依赖管理装置例如可以是如图3所示的依赖管理装置300。
参见图2,本申请实施例中,可以包括如下步骤:
S201:在项目运行错误时,分析项目的错误信息。
需要说明的是,错误信息可以为提示**类/方法不存在或其他报错信息。
S202:在错误信息指示项目存在依赖冲突时,获得与依赖冲突对应的第一依赖和第一版本,第一版本用于表征第一依赖的版本信息。
需要说明的是,项目包括POM(即POM.xml),POM.xml包括第一依赖。
在一些实现方式中,申请实施例提供的方法还可以包括:获取项目的依赖集合;基于预设依赖关系文档,获取依赖集合中各依赖的连接关系;显示连接关系对应的图谱,图谱包括依赖集合中各依赖的版本信息。具体地,依赖之间可以用实线或虚线连成一张关系图谱,并显示每个依赖的版本信息。当依赖冲突时,关系图谱中冲突的依赖之间的连接线会标红。
S203:基于预设依赖关系文档,获取与第一版本关联的第二版本,预设依赖关系文档包括与第一依赖对应的多个依赖版本,多个依赖版本包括第一版本和第二版本。
需要说明的是,预设依赖关系文档可以是官方Maven仓库或依赖组件官方网站的帮助文档,即,在官方Maven仓库(https://mvnrepository.com/)或在依赖官网的帮助文档中查找与第一依赖对应的依赖关系;第二版本可以是一个版本,也可以是多个版本集合,以便供开发人员进行选择,那么,关系图谱不仅显示冲突依赖的现版本,还会显示推荐修改的依赖版本的范围。
S204:显示第二版本。
在S204之后,还可以响应于开发人员确定将第一版本更改为该第二版本的操作,定位POM中的第一依赖,将第一版本修改为第二版本。
在一些实现方式中,当依赖版本升级或降级时,可能会出现项目中类或方法被弃用或变更,导致需要修改源代码,为了方便开发人员对引入的类和方法进行修改,本申请实施例提供的方法,还可以提供第二版本依赖的应用程序编程接口(ApplicationProgrammingInterface,API)文档,以及与第二版本相比较第一版本被修改的地方,并且还可以基于API文档,对第一版本和第二版本进行对比分析,获得差异结果;并在项目中标注与差异结果对应的源代码。需要说明的是,API文档是指依赖的API规范文档,包含该依赖组件的包名、类名、方法名、接口名,以及方法或接口的描述信息及使用规范等。
在另一些实现方式中,在引入某版本依赖时,可能会出现依赖导入失败,但POM.xml没有报错的现象,这是因为依赖包下载失败,形成一个临时文件,导致Maven仓库检测到该版本后不会再进行下载,那么,本申请实施例提供的方法还可以包括:在错误信息指示项目存在依赖下载失败时,检测项目对应的本地依赖仓库;若本地依赖仓库包括临时文件,则删除临时文件(*.lastUpdated)。
在其他实现方式中,本申请实施例提供的方法还可以包括:在错误信息指示项目存在依赖重复项时,获得与依赖重复项对应的第二依赖和第三依赖;获取第三版本和第四版本,第三版本用于表征第二依赖的版本信息,第四版本用于表征第三依赖的版本信息;对第三版本和所述第四版本进行对比,获得对比结果;在对比结果指示第三版本与第四版本一致时,删除POM.xml中的所述第二依赖或所述第三依赖。在所述对比结果指示所述第三版本与所述第四版本不一致时,在POM.xml中标注第二依赖和第三依赖。
具体地,当POM.xml中的存在依赖重复项,第二依赖为A、第三依赖为A,并且第二依赖和第三依赖均为2.0版本,则自动删除第二依赖或者第三依赖。第二依赖为2.0版本、第三依赖为2.1版本,那么在POM.xml中标注第二依赖和第三依赖,方便开发人员自行删除其一。
如此,通过本申请实施例提供的方法,不仅可以在依赖冲突时,获取依赖的推荐版本;而且通过图谱的方式显示项目中各依赖的连接关系、版本情况甚至推荐依赖版本信息,一定程度上提高了开发人员的开发效率。
参见图3,本申请实施例还提供了一种依赖管理装置300,其特征在于,所述装置300包括:
分析单元301,用于在项目运行错误时,分析所述项目的错误信息;
获得单元302,用于在所述错误信息指示所述项目存在依赖冲突时,获得与所述依赖冲突对应的第一依赖和第一版本,所述第一版本用于表征所述第一依赖的版本信息;
获取单元303,用于基于预设依赖关系文档,获取与所述第一版本关联的第二版本,所述预设依赖关系文档包括与所述第一依赖对应的多个依赖版本,多个所述依赖版本包括所述第一版本和所述第二版本;
显示单元304,用于显示所述第二版本。
可选地,所述装置300还包括标注单元,所述标注单元具体用于:
基于应用程序编程接口文档,对所述第一版本和所述第二版本进行对比分析,获得差异结果;
在所述项目中标注与所述差异结果对应的源代码。
可选地,所述装置300还包括图谱显示单元,所述图谱显示单元具体用于:
获取所述项目的依赖集合;
基于所述预设依赖关系文档,获取所述依赖集合中各依赖的连接关系;
显示所述连接关系对应的图谱,所述图谱包括所述依赖集合中各依赖的版本信息。
可选地,所述装置300还包括删除单元,所述删除单元具体用于:
在所述错误信息指示所述项目存在依赖下载失败时,检测所述项目对应的本地依赖仓库;
若所述本地依赖仓库包括临时文件,则删除所述临时文件。
可选地,所述项目包括项目对象模型POM,所述POM包括所述第一依赖。
可选地,所述装置300还包括修改单元,所述修改单元具体用于:
定位所述POM中的所述第一依赖,将所述第一版本修改为所述第二版本。
可选地,所述删除单元,还用于:
在所述错误信息指示所述项目存在依赖重复项时,获得与所述依赖重复项对应的第二依赖和第三依赖;
获取第三版本和第四版本,所述第三版本用于表征所述第二依赖的版本信息,第四版本用于表征所述第三依赖的版本信息;
对所述第三版本和所述第四版本进行对比,获得对比结果;
在所述对比结果指示所述第三版本与所述第四版本一致时,删除所述POM中的所述第二依赖或所述第三依赖。
可选地,所述标注单元,还用于在所述对比结果指示所述第三版本与所述第四版本不一致时,在所述POM中标注所述第二依赖和所述第三依赖。
需要说明的是,该装置300的具体实现方式以及达到的技术效果,均可以参见图2所示的方法中的相关描述。
此外,本申请实施例还提供了一种电子设备400,如图4所示,所述电子设备400包括处理器401以及存储器402:
所述存储器402用于存储计算机程序;
所述处理器401用于根据所述计算机程序执行图2提供的方法。
此外,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机程序,所述计算机程序用于执行本申请实施例提供的方法。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到上述实施例方法中的全部或部分步骤可借助软件加通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如只读存储器(英文:read-only memory,ROM)/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者诸如路由器等网络通信设备)执行本申请各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目标。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本申请的优选实施方式,并非用于限定本申请的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

Claims (11)

1.一种依赖管理方法,其特征在于,所述方法包括:
在项目运行错误时,分析所述项目的错误信息;
在所述错误信息指示所述项目存在依赖冲突时,获得与所述依赖冲突对应的第一依赖和第一版本,所述第一版本用于表征所述第一依赖的版本信息;
基于预设依赖关系文档,获取与所述第一版本关联的第二版本,所述预设依赖关系文档包括与所述第一依赖对应的多个依赖版本,多个所述依赖版本包括所述第一版本和所述第二版本;
显示所述第二版本。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
基于应用程序编程接口文档,对所述第一版本和所述第二版本进行对比分析,获得差异结果;
在所述项目中标注与所述差异结果对应的源代码。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取所述项目的依赖集合;
基于所述预设依赖关系文档,获取所述依赖集合中各依赖的连接关系;
显示所述连接关系对应的图谱,所述图谱包括所述依赖集合中各依赖的版本信息。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述错误信息指示所述项目存在依赖下载失败时,检测所述项目对应的本地依赖仓库;
若所述本地依赖仓库包括临时文件,则删除所述临时文件。
5.根据权利要求1所述的方法,其特征在于,所述项目包括项目对象模型POM,所述POM包括所述第一依赖。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
定位所述POM中的所述第一依赖,将所述第一版本修改为所述第二版本。
7.根据权利要求5所述的方法,其特征在于,所述方法还包括:
在所述错误信息指示所述项目存在依赖重复项时,获得与所述依赖重复项对应的第二依赖和第三依赖;
获取第三版本和第四版本,所述第三版本用于表征所述第二依赖的版本信息,第四版本用于表征所述第三依赖的版本信息;
对所述第三版本和所述第四版本进行对比,获得对比结果;
在所述对比结果指示所述第三版本与所述第四版本一致时,删除所述POM中的所述第二依赖或所述第三依赖。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
在所述对比结果指示所述第三版本与所述第四版本不一致时,在所述POM中标注所述第二依赖和所述第三依赖。
9.一种依赖管理装置,其特征在于,所述装置包括:
分析单元,用于在项目运行错误时,分析所述项目的错误信息;
获得单元,用于在所述错误信息指示所述项目存在依赖冲突时,获得与所述依赖冲突对应的第一依赖和第一版本,所述第一版本用于表征所述第一依赖的版本信息;
获取单元,用于基于预设依赖关系文档,获取与所述第一版本关联的第二版本,所述预设依赖关系文档包括与所述第一依赖对应的多个依赖版本,多个所述依赖版本包括所述第一版本和所述第二版本;
显示单元,用于显示所述第二版本。
10.一种电子设备,其特征在于,所述电子设备包括处理器以及存储器:
所述存储器用于存储计算机程序;
所述处理器用于根据所述计算机程序执行权利要求1-8任一项所述的方法。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储计算机程序,所述计算机程序用于执行权利要求1-8任一项所述的方法。
CN202310697416.2A 2023-06-13 2023-06-13 一种依赖管理方法、装置、电子设备及存储介质 Pending CN116820477A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310697416.2A CN116820477A (zh) 2023-06-13 2023-06-13 一种依赖管理方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310697416.2A CN116820477A (zh) 2023-06-13 2023-06-13 一种依赖管理方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN116820477A true CN116820477A (zh) 2023-09-29

Family

ID=88111980

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310697416.2A Pending CN116820477A (zh) 2023-06-13 2023-06-13 一种依赖管理方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN116820477A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117573562A (zh) * 2024-01-15 2024-02-20 云筑信息科技(成都)有限公司 一种对比pom文件不同版本的方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117573562A (zh) * 2024-01-15 2024-02-20 云筑信息科技(成都)有限公司 一种对比pom文件不同版本的方法

Similar Documents

Publication Publication Date Title
US9798648B2 (en) Transitive source code violation matching and attribution
Businge et al. Eclipse API usage: the good and the bad
CN111507086B (zh) 本地化应用程序中翻译文本位置的自动发现
EP2656222A1 (en) Code clone notification and architectural change visualization
US11113050B2 (en) Application architecture generation
US9336128B2 (en) Method and system for code analysis using symbolic types
CN111078481B (zh) 获取配置检查清单的方法、装置、电子设备及存储介质
US11327722B1 (en) Programming language corpus generation
CN111459495A (zh) 单元测试代码文件生成方法、电子装置及存储介质
US20140298290A1 (en) Identification of code changes using language syntax and changeset data
EP3447635A1 (en) Application architecture generation
CN116820477A (zh) 一种依赖管理方法、装置、电子设备及存储介质
US20210405980A1 (en) Long method autofix engine
US20200133823A1 (en) Identifying known defects from graph representations of error messages
Nielsen et al. Semantic patches for adaptation of JavaScript programs to evolving libraries
Fazzini et al. Apimigrator: an api-usage migration tool for android apps
US10698666B2 (en) Automatically building software projects
CN112988578A (zh) 一种自动化测试方法和装置
CN113377342B (zh) 一种项目构建方法、装置、电子设备及存储介质
CN110674024A (zh) 电子设备集成测试系统及其方法
CN115794214A (zh) 应用模块元数据管理方法、设备、存储介质及装置
CN115951916A (zh) 一种组件的处理方法、装置、电子设备及存储介质
CN115291935A (zh) 组件更新方法、组件更新装置、设备和存储介质
CN113886239A (zh) Maven依赖检查方法及装置
CN113504904A (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