CN114968341A - 软件项目的依赖的版本管理方法及相关设备 - Google Patents
软件项目的依赖的版本管理方法及相关设备 Download PDFInfo
- Publication number
- CN114968341A CN114968341A CN202210710041.4A CN202210710041A CN114968341A CN 114968341 A CN114968341 A CN 114968341A CN 202210710041 A CN202210710041 A CN 202210710041A CN 114968341 A CN114968341 A CN 114968341A
- Authority
- CN
- China
- Prior art keywords
- software
- version
- version number
- project
- dependency
- 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/70—Software maintenance or management
- G06F8/71—Version 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)
- Stored Programmes (AREA)
Abstract
本发明公开了一种软件项目的依赖的版本管理方法,应用于软件开发技术领域。本发明提供的方法包括:获取多个软件项目以及所述软件项目的版本号;获取每个所述软件项目的所述版本号对应的依赖信息;使用预设的图形库对所述软件项目的最大版本号对应的依赖信息进行可视化展示;分别将所述图形库展示的所述软件项目的最大版本号的依赖信息中每条依赖的当前版本与所述每条依赖所在的远程仓库中的仓库最大版本进行比较,若所述当前版本小于所述仓库最大版本,则添加所述仓库最大版本的更新按钮图形化展示;接收响应于对所述更新按钮的点击动作形成的更新指令,根据所述仓库最大版本的依赖对所述软件项目的最大版本号的依赖信息中对应所述依赖进行更新。
Description
技术领域
本发明涉及软件开发运维技术领域,尤其涉及一种软件项目依赖管理方法、装置、计算机设备及存储介质。
背景技术
在软件开发的过程中,对于软件项目中依赖的版本管理方法,都是针对单个项目的依赖配置文件进行手动的依赖管理,同时也不能及时知晓软件项目的每个依赖的最新版本。发明人发现在开发运维体系DevOps的流水线中,无法对众多的软件项目的众多依赖的版本进行集中且便捷的管理。
发明内容
本发明实施例提供一种软件项目的依赖的版本管理方法、装置、计算机设备及存储介质,以解决现有技术中无法对多个软件项目的依赖进行集中管理的问题。
一种软件项目的依赖的版本管理方法,包括:
从开发运维流水线中获取多个软件项目以及每个所述软件项目的至少一个版本号;
获取每个所述软件项目的每个所述版本号对应的依赖信息,以及每个所述软件项目的项目类型;
根据所述项目类型对应的依赖信息展示规则,使用预设的图形库对每个所述软件项目的最大版本号对应的依赖信息进行可视化展示;
分别将所述图形库展示的各所述软件项目的最大版本号的依赖信息中每条依赖的当前版本与所述每条依赖所在的远程仓库中的仓库最大版本进行比较,若所述当前版本小于所述仓库最大版本,则对应添加所述仓库最大版本的更新按钮图形化展示;
接收响应于对所述更新按钮的点击动作形成的更新指令,根据所述仓库最大版本的依赖对所述软件项目的最大版本号的依赖信息中对应所述依赖进行更新。
一种软件项目的依赖的版本管理装置,包括:
项目获取模块,用于从开发运维流水线中获取多个软件项目以及每个所述软件项目的至少一个版本号;
依赖获取模块,用于获取每个所述软件项目的每个所述版本号对应的依赖信息,以及每个所述软件项目的项目类型;
图形展示模块,用于根据所述项目类型对应的依赖信息展示规则,使用预设的图形库对每个所述软件项目的最大版本号对应的依赖信息进行可视化展示;
版本比较模块,用于分别将所述图形库展示的各所述软件项目的最大版本号的依赖信息中每条依赖的当前版本与所述每条依赖所在的远程仓库中的仓库最大版本进行比较,若所述当前版本小于所述仓库最大版本,则对应添加所述仓库最大版本的更新按钮图形化展示;
依赖更新模块,用于接收响应于对所述更新按钮的点击动作形成的更新指令,根据所述仓库最大版本的依赖对所述软件项目的最大版本号的依赖信息中对应所述依赖进行更新。
一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述软件项目的依赖的版本管理方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述软件项目的依赖的版本管理方法的步骤。
上述软件项目的依赖的版本管理方法、装置、计算机设备及存储介质,通过开发运维流水线获取每个软件项目保存在所述开发运维流水线中的依赖信息和项目信息,使用预设的前端图形库工具将每个软件项目对应的依赖信息进行展示,并且基于所述开发运维流水线和所述前端图形库工具实现了对每个软件项目的依赖信息的版本管理的图形化操作。因此,不仅解决了现有技术无法对多个软件项目的依赖的版本进行集中管理的问题,更通过图形库工具实现了依赖的版本管理的图形化,提升了版本管理的用户体验。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例中软件项目的依赖的版本管理方法的一应用环境示意图;
图2是本发明一实施例中软件项目的依赖的版本管理方法的一流程图;
图3是本发明一实施例中软件项目的依赖的版本管理装置的结构示意图;
图4是本发明一实施例中计算机设备的一示意图;
图5是本发明一实施例中另一计算机设备的一示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请提供的软件项目的依赖的版本管理方法,可应用在如图1的应用环境中,其中,计算机设备通过网络与服务器进行通信。其中,计算机设备可以但不限于各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备。服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
目前,在软件开发技术领域,DevOps(Development和Operations)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。DevOps通过自动化“软件交付”和“架构变更”的流程,使得软件项目的构建、软降项目的测试、软件项目的发布能够变得更加快捷、频繁和可靠。DevOps中的流水线是一组自动化流程,所述流水线包含的常见组件是构建自动化或持续集成、测试自动化和部署自动化,具体地的组件工具分类包括但不限于:源代码控制工具、构建工具、容器化工具、配置管理工具、监控工具。在无DevOps的时候,每个软件项目的依赖的版本管理方式都是每个软件项目单独进行管理的方式,而在DevOps中加入了源代码控制工具后,可以获取流水线中每个软件项目的详细代码内容,基于所述DevOps以及所述DevOps中加入的源代码控制工具,则可以使用本申请提供的软件项目的依赖的版本管理方法,对流水线中的每个软件项目的依赖进行集中化的管理。
在一实施例中,如图2所示,提供一种软件项目的依赖的版本管理方法,以该方法应用在图1中的计算机设备和服务器为例进行说明,包括如下步骤S101至S105:
S101、从开发运维流水线中获取多个软件项目以及每个所述软件项目的至少一个版本号。
具体地,所述开发运维流水线中包含了众多被管理的软件项目,而每个软件项目因为需要协同开发的情况必然存在源代码服务器,而所述运维流水线作为软件项目的管理工具体系,需要保存被管理的软件项目的源代码地址。同时,所述开发运维流水线还部署了源代码控制工具,所述开发运维流水线基于所述源代码控制工具和所述源代码地址管理软件项目的源代码,所述源代码控制工具在此步骤中用于获取所述每个软件项目的至少一个版本号。其中,所述源代码控制工具包括但不限于:Git、Subversion、Concurrent VersionsSystem(CVS)、Vesta和Mercurial等。所述源代码控制工具在软件开发技术领域一般用于对软件项目的源代码进行版本管理、分支管理、合并管理等。其中,对于同一个软件项目,若该软件项目的版本号不同,则该软件项目不同版本号时对应的依赖信息可能不同,因为软件开发技术领域,软件开发技术也会有更新和升级,进而带动相应的依赖进行升级,最后导致该软件项目若要使用该依赖库的新功能时需要将该软件项目的依赖也进行升级。同时,在软件开发的过程中,也存在依赖被替换的场景,例如依赖A在一Java项目中的V1.0版本中存在,而在该Java项目中的V2.0版本中,该依赖A被替换为能达到同样功能但性能更高的依赖B。
进一步地,所述从开发运维流水线中获取多个软件项目以及每个所述软件项目的至少一个版本号包括:从开发运维流水线中获取多个软件项目,判断每个所述软件项目是否处在活动状态;将处在活动状态的所述软件项目添加到待监控项目集合,将处在非活动状态的所述软件项目添加到待获取项目集合。然后,需要为处在不同活动状态的每个所述软件项目做出不同的处理方式,即为所述待获取项目集合中每个所述软件项目分配对应的第一子线程,将所述软件项目与对应的所述第一子线程进行关联,启动所述第一子线程获取对应所述软件项目的至少一个版本号。同时,为所述待监控项目集合中每个所述软件项目分配对应的第二子线程,将所述软件项目与对应的所述第二子线程进行关联,启动所述第二子线程监控对应的所述软件项目的当前状态,所述当前状态包括活动状态或非活动状态。在所述第二子线程对所述软件项目的监控过程中,若所述第二子线程监控到对应的所述软件项目处在非活动状态,则所述第二子线程获取对应所述软件项目的至少一个版本号。
S102、获取每个所述软件项目的每个所述版本号对应的依赖信息,以及每个所述软件项目的项目类型。
进一步地,所述获取每个所述软件项目的每个所述版本号对应的依赖信息包括:首先,使用预设接口从所述开发运维流水线中获取每个软件项目的每个版本号,以及所述每个版本号的生成时间。同时,将所述生成时间与预设目标时间进行比对,若所述生成时间晚于或等于所述预设目标时间,则将所述生成时间对应的版本号作为待获取版本号添加到待获取版本集合。最后,遍历所述待获取版本集合中的每个待获取版本号,获取每个软件项目在所述待获取版本号时的依赖信息。其中,所述预设目标时间设定的作用在于合理调整所述目标时间后可以减小软件项目依赖管理的任务量,即对于存在时间较久的所述软件项目的版本不再进行管理,只关注所述软件项目中距离当前时间较近的版本号。
S103、根据所述项目类型对应的依赖信息展示规则,使用预设的图形库对每个所述软件项目的最大版本号对应的依赖信息进行可视化展示。
进一步地,所述根据所述项目类型对应的依赖信息展示规则,使用预设的图形库对每个所述软件项目的最大版本号对应的依赖信息进行可视化展示包括:首先,使用所述预设的图形库按照所述项目类型对所述软件项目进行聚类展示,并获取每个所述项目类型的依赖信息展示规则。然后,为每个所述项目类型创建对应的第三子线程,将所述第三子线程与对应所述项目类型的各所述软件项目分别进行关联。最后,启动所述第三子线程,根据所述依赖信息展示规则,使用所述图形库对关联的所述软件项目的最大版本号对应的依赖信息进行可视化展示。
其中,根据所述项目类型的不同,所述图形库能提供的可供图形化操作的功能不同。例如,若所述软件项目的项目类型为Html5时,所述图形库展示该Html5项目的最大版本号对应的所有依赖,所述图形库展示每条依赖的信息如下:依赖的包名、依赖的项目名、依赖的包的版本、依赖的包的最新版本、是否使用了最新版本的依赖以及当前被添加的依赖里被使用的具体函数方法等。若所述软件项目的项目类型为iOS时,所述图形库展示该iOS项目的最大版本号对应的所有依赖,所述图形库展示每条依赖的信息如下:依赖的包名、依赖的项目名、依赖的包的版本、依赖的包的最新版本、是否使用了最新版本的依赖、依赖的包集成的第三方依赖的包的信息、依赖的远端源信息以及依赖在远端源中的分支信息。
进一步地,所述根据所述项目类型对应的依赖信息展示规则,使用预设的图形库对每个所述软件项目的最大版本号对应的依赖信息进行可视化展示之后还包括:首先,使用所述图形库展示每个软件项目的所述待获取版本集合中的每个待获取版本号。然后,根据所述每个待获取版本号,使用所述图形库为每个软件项目生成版本切换列表以及每个软件项目当前选中的版本号。同时,接收响应于对所述版本切换列表的点击操作形成的识别指令,识别所述点击操作指向的目标版本号,根据被操作的软件项目在所述目标版本号时的依赖信息对被操作的软件项目的图形化展示信息进行刷新。
S104、分别将所述图形库展示的各所述软件项目的最大版本号的依赖信息中每条依赖的当前版本与所述每条依赖所在的远程仓库中的仓库最大版本进行比较,若所述当前版本小于所述仓库最大版本,则对应添加所述仓库最大版本的更新按钮图形化展示。
进一步地,所述与所述每条依赖所在的远程仓库中的仓库最大版本进行比较之后还包括:首先,获取所述每条依赖所在的远程仓库中的所有仓库版本,并使用所述图形库展示包括所述所有仓库版本的列表,以及每条依赖当前的仓库版本。同时,接收响应于对所述列表的切换操作形成的重新指定指令,根据所述重新指定指令指向的目标仓库版本对每条所述依赖的当前指向的仓库版本在所述图形库中进行更新。最后,通过所述开发运维流水线中预设的依赖更新工具将所述目标仓库版本的依赖更新到对应的软件项目。
进一步地,所述根据所述每个待获取版本号,使用所述图形库为每个软件项目生成版本切换列表以及每个软件项目当前选中的版本号之后还包括:首先,对每个所述软件项目在所述开发运维流水线中的版本号进行监控,若所述软件项目在所述开发运维流水线中产生了新增版本号,将所述新增版本号与所述版本切换列表中的最大版本号进行比较,若所述新增版本号大于所述版本切换列表中的最大版本号,则将所述新增版本号添加到所述版本切换列表。
S105、接收响应于对所述更新按钮的点击动作形成的更新指令,根据所述仓库最大版本的依赖对所述软件项目的最大版本号的依赖信息中对应所述依赖进行更新。
进一步地,在每个软件项目的图形化展示页面上设置是否开启自动更新依赖的版本的第一开关。同时,在所述开发运维流水线中启动用于定时更新软件项目的依赖的第一定时任务,所述定时任务根据预设第一触发规则扫描每个软件项目的所述第一开关是否打开,若所述第一开关被打开,则扫描所述软件项目中的每条依赖在远程仓库中是否存在新的版本,若存在则从远端仓库中下载对应依赖的最新的版本到所述软件项目中覆盖对应依赖的旧版本。
进一步地,自动更新软件项目的依赖的版本的另外一种较佳的实现方法如下:将所有软件项目的依赖全部获取之后添加到依赖信息集合。然后,对所述依赖信息集合中的元素做去重处理,并且添加每条依赖关联的软件项目信息,其中,所述软件项目信息中包含了该软件项目是否打开了自动更新。最后,启动第二定时任务根据预设第二触发规则启动,定时查询所述依赖信息集合中的每条依赖所在的远程仓库中是否存在版本更新,同时判断该依赖信息对应的软件项目是否打开了自动更新,若既存在版本更新又打开了自动更新,则下载该依赖的最新版本,并用所述依赖的最新版本覆盖所述依赖存在且开启了自动更新的软件项目的旧版本依赖。
本实施例提出的软件项目的依赖的版本管理方法,通过开发运维流水线获取每个软件项目保存在所述开发运维流水线中的依赖信息和项目信息,使用预设的前端图形库工具将每个软件项目对应的依赖信息进行展示,并且基于所述开发运维流水线和所述前端图形库工具实现了对每个软件项目的依赖信息的版本管理的图形化操作。因此,不仅解决了现有技术无法对对个软件项目的依赖的版本进行集中管理的问题,更通过图形库工具实现了依赖的版本管理的图形化,提升了版本管理的用户体验。同时,通过远程依赖仓库中的全部版本信息,不仅能够对软件项目的依赖的版本进行更新,还能实现对软件项目的依赖的版本进行回退。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
在一实施例中,提供一种软件项目的依赖的版本管理装置100,该软件项目的依赖的版本管理装置100与上述实施例中软件项目的依赖的版本管理方法一一对应。如图3所示,该软件项目的依赖的版本管理装置100包括项目获取模块11、依赖获取模块12、图形展示模块13、版本比较模板14和依赖更新模块15。各功能模块详细说明如下:
项目获取模块11,用于从开发运维流水线中获取多个软件项目以及每个所述软件项目的至少一个版本号;
依赖获取模块12,用于获取每个所述软件项目的每个所述版本号对应的依赖信息,以及每个所述软件项目的项目类型;
图形展示模块13,用于根据所述项目类型对应的依赖信息展示规则,使用预设的图形库对每个所述软件项目的最大版本号对应的依赖信息进行可视化展示;
版本比较模块14,用于分别将所述图形库展示的各所述软件项目的最大版本号的依赖信息中每条依赖的当前版本与所述每条依赖所在的远程仓库中的仓库最大版本进行比较,若所述当前版本小于所述仓库最大版本,则对应添加所述仓库最大版本的更新按钮图形化展示;
依赖更新模块15,用于接收响应于对所述更新按钮的点击动作形成的更新指令,根据所述仓库最大版本的依赖对所述软件项目的最大版本号的依赖信息中对应所述依赖进行更新。
进一步地,所述项目获取模块11还包括:
第一判断子模块,用于从开发运维流水线中获取多个软件项目,判断每个所述软件项目是否处在活动状态;
项目分类子模块,用于将处在活动状态的所述软件项目添加到待监控项目集合,将处在非活动状态的所述软件项目添加到待获取项目集合;
第一子线程子模块,用于为所述待获取项目集合中每个所述软件项目分配对应的第一子线程,将所述软件项目与对应的所述第一子线程进行关联,启动所述第一子线程获取对应所述软件项目的至少一个版本号;
第二子线程子模块,用于为所述待监控项目集合中每个所述软件项目分配对应的第二子线程,将所述软件项目与对应的所述第二子线程进行关联,启动所述第二子线程监控对应的所述软件项目的当前状态,所述当前状态包括活动状态或非活动状态;
线程监控子模块,用于若所述第二子线程监控到对应的所述软件项目处在非活动状态,则所述第二子线程获取对应所述软件项目的至少一个版本号。
进一步地,所述依赖获取模块12号包括:
版本号子模块,用于使用预设接口从所述开发运维流水线中获取每个软件项目的每个版本号,以及所述每个版本号的生成时间;
时间对比子模块,用于将所述生成时间与预设目标时间进行比对,若所述生成时间晚于或等于所述预设目标时间,则将所述生成时间对应的版本号作为待获取版本号添加到待获取版本集合;
集合遍历子模块,用于遍历所述待获取版本集合中的每个待获取版本号,获取每个软件项目在所述待获取版本号时的依赖信息。
进一步地,所述图形展示模块13还包括:
项目聚类子模块,用于使用所述预设的图形库按照所述项目类型对所述软件项目进行聚类展示;
规则获取子模块,用于获取每个所述项目类型的依赖信息展示规则;
线程关联子模块,用于为每个所述项目类型创建对应的第三子线程,将所述第三子线程与对应所述项目类型的各所述软件项目分别进行关联;
信息展示子模块,用于启动所述第三子线程,根据所述依赖信息展示规则,使用所述图形库对关联的所述软件项目的最大版本号对应的依赖信息进行可视化展示。
进一步地,所述信息展示子模块还包括:
版本号子单元,用于使用所述图形库展示每个软件项目的所述待获取版本集合中的每个待获取版本号;
切换列表子单元,用于根据所述每个待获取版本号,使用所述图形库为每个软件项目生成版本切换列表以及每个软件项目当前选中的版本号;
版本切换子单元,用于接收响应于对所述版本切换列表的点击操作形成的识别指令,识别所述点击操作指向的目标版本号,根据被操作的软件项目在所述目标版本号时的依赖信息对被操作的软件项目的图形化展示信息进行刷新。
进一步地,所述切换列表子单元还包括:
版本号监控子功能,用于对每个所述软件项目在所述开发运维流水线中的版本号进行监控;
版本号新增子功能,用于若所述软件项目在所述开发运维流水线中产生了新增版本号,将所述新增版本号与所述版本切换列表中的最大版本号进行比较;
列表新增子功能,用于若所述新增版本号大于所述版本切换列表中的最大版本号,则将所述新增版本号添加到所述版本切换列表。
进一步地,所述版本比较模块14还包括:
仓库版本获取子单元,用于获取所述每条依赖所在的远程仓库中的所有仓库版本;
仓库版本展示子单元,用于使用所述图形库展示包括所述所有仓库版本的列表,以及每条依赖当前的仓库版本;
图形展示更新子单元,用于接收响应于对所述列表的切换操作形成的重新指定指令,根据所述重新指定指令指向的目标仓库版本对每条所述依赖的当前指向的仓库版本进行更新;
项目依赖更新子单元,用于通过所述开发运维流水线中预设的依赖更新工具将所述目标仓库版本的依赖更新到对应的软件项目。
其中上述模块/单元中的“第一”和“第二”的意义仅在于将不同的模块/单元加以区分,并不用于限定哪个模块/单元的优先级更高或者其它的限定意义。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或模块的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或模块,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或模块,本申请中所出现的模块的划分,仅仅是一种逻辑上的划分,实际应用中实现时可以有另外的划分方式。
关于软件项目的依赖的版本管理装置的具体限定可以参见上文中对于软件项目的依赖的版本管理方法的限定,在此不再赘述。上述软件项目的依赖的版本管理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图4所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储软件项目的依赖的版本管理方法中涉及到的数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种软件项目的依赖的版本管理方法。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图5所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部服务器通过网络连接通信。该计算机程序被处理器执行时以实现一种软件项目的依赖的版本管理方法。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述实施例中软件项目的依赖的版本管理方法的步骤,例如图2所示的步骤S101至步骤S105及该方法的其它扩展和相关步骤的延伸。或者,处理器执行计算机程序时实现上述实施例中软件项目的依赖的版本管理装置的各模块/单元的功能,例如图3所示模块11至模块15的功能。为避免重复,这里不再赘述。
所述处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述计算机装置的控制中心,利用各种接口和线路连接整个计算机装置的各个部分。
所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述计算机装置的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、视频数据等)等。
所述存储器可以集成在所述处理器中,也可以与所述处理器分开设置。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述实施例中软件项目的依赖的版本管理方法的步骤,例如图2所示的步骤S101至步骤S105及该方法的其它扩展和相关步骤的延伸。或者,计算机程序被处理器执行时实现上述实施例中软件项目的依赖的版本管理装置的各模块/单元的功能,例如图3所示模块11至模块15的功能。为避免重复,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (10)
1.一种软件项目的依赖的版本管理方法,其特征在于,包括:
从开发运维流水线中获取多个软件项目以及每个所述软件项目的至少一个版本号;
获取每个所述软件项目的每个所述版本号对应的依赖信息,以及每个所述软件项目的项目类型;
根据所述项目类型对应的依赖信息展示规则,使用预设的图形库对每个所述软件项目的最大版本号对应的依赖信息进行可视化展示;
分别将所述图形库展示的各所述软件项目的最大版本号的依赖信息中每条依赖的当前版本与所述每条依赖所在的远程仓库中的仓库最大版本进行比较,若所述当前版本小于所述仓库最大版本,则对应添加所述仓库最大版本的更新按钮图形化展示;
接收响应于对所述更新按钮的点击动作形成的更新指令,根据所述仓库最大版本的依赖对所述软件项目的最大版本号的依赖信息中对应所述依赖进行更新。
2.根据权利要求1所述的软件项目的依赖的版本管理方法,其特征在于,所述从开发运维流水线中获取多个软件项目以及每个所述软件项目的至少一个版本号包括:
从开发运维流水线中获取多个软件项目,判断每个所述软件项目是否处在活动状态;
将处在活动状态的所述软件项目添加到待监控项目集合,将处在非活动状态的所述软件项目添加到待获取项目集合;
为所述待获取项目集合中每个所述软件项目分配对应的第一子线程,将所述软件项目与对应的所述第一子线程进行关联,启动所述第一子线程获取对应所述软件项目的至少一个版本号;
为所述待监控项目集合中每个所述软件项目分配对应的第二子线程,将所述软件项目与对应的所述第二子线程进行关联,启动所述第二子线程监控对应的所述软件项目的当前状态,所述当前状态包括活动状态或非活动状态;
若所述第二子线程监控到对应的所述软件项目处在非活动状态,则所述第二子线程获取对应所述软件项目的至少一个版本号。
3.根据权利要求1所述的软件项目的依赖的版本管理方法,其特征在于,所述获取每个所述软件项目的每个所述版本号对应的依赖信息包括:
使用预设接口从所述开发运维流水线中获取每个软件项目的每个版本号,以及所述每个版本号的生成时间;
将所述生成时间与预设目标时间进行比对,若所述生成时间晚于或等于所述预设目标时间,则将所述生成时间对应的版本号作为待获取版本号添加到待获取版本集合;
遍历所述待获取版本集合中的每个待获取版本号,获取每个软件项目在所述待获取版本号时的依赖信息。
4.根据权利要求1所述的软件项目的依赖的版本管理方法,其特征在于,所述根据所述项目类型对应的依赖信息展示规则,使用预设的图形库对每个所述软件项目的最大版本号对应的依赖信息进行可视化展示包括:
使用所述预设的图形库按照所述项目类型对所述软件项目进行聚类展示;
获取每个所述项目类型的依赖信息展示规则;
为每个所述项目类型创建对应的第三子线程,将所述第三子线程与对应所述项目类型的各所述软件项目分别进行关联;
启动所述第三子线程,根据所述依赖信息展示规则,使用所述图形库对关联的所述软件项目的最大版本号对应的依赖信息进行可视化展示。
5.根据权利要求3所述的软件项目的依赖的版本管理方法,其特征在于,所述根据所述项目类型对应的依赖信息展示规则,使用预设的图形库对每个所述软件项目的最大版本号对应的依赖信息进行可视化展示之后还包括:
使用所述图形库展示每个软件项目的所述待获取版本集合中的每个待获取版本号;
根据所述每个待获取版本号,使用所述图形库为每个软件项目生成版本切换列表以及每个软件项目当前选中的版本号;
接收响应于对所述版本切换列表的点击操作形成的识别指令,识别所述点击操作指向的目标版本号,根据被操作的软件项目在所述目标版本号时的依赖信息对被操作的软件项目的图形化展示信息进行刷新。
6.根据权利要求1所述的软件项目的依赖的版本管理方法,其特征在于,所述与所述每条依赖所在的远程仓库中的仓库最大版本进行比较之后还包括:
获取所述每条依赖所在的远程仓库中的所有仓库版本;
使用所述图形库展示包括所述所有仓库版本的列表,以及每条依赖当前的仓库版本;
接收响应于对所述列表的切换操作形成的重新指定指令,根据所述重新指定指令指向的目标仓库版本对每条所述依赖的当前指向的仓库版本在所述图形库中进行更新;
通过所述开发运维流水线中预设的依赖更新工具将所述目标仓库版本的依赖更新到对应的软件项目。
7.根据权利要求5所述的软件项目的依赖的版本管理方法,其特征在于,所述根据所述每个待获取版本号,使用所述图形库为每个软件项目生成版本切换列表以及每个软件项目当前选中的版本号之后还包括:
对每个所述软件项目在所述开发运维流水线中的版本号进行监控;
若所述软件项目在所述开发运维流水线中产生了新增版本号,将所述新增版本号与所述版本切换列表中的最大版本号进行比较;
若所述新增版本号大于所述版本切换列表中的最大版本号,则将所述新增版本号添加到所述版本切换列表。
8.一种软件项目的依赖的版本管理装置,其特征在于,包括:
项目获取模块,用于从开发运维流水线中获取多个软件项目以及每个所述软件项目的至少一个版本号;
依赖获取模块,用于获取每个所述软件项目的每个所述版本号对应的依赖信息,以及每个所述软件项目的项目类型;
图形展示模块,用于根据所述项目类型对应的依赖信息展示规则,使用预设的图形库对每个所述软件项目的最大版本号对应的依赖信息进行可视化展示;
版本比较模块,用于分别将所述图形库展示的各所述软件项目的最大版本号的依赖信息中每条依赖的当前版本与所述每条依赖所在的远程仓库中的仓库最大版本进行比较,若所述当前版本小于所述仓库最大版本,则对应添加所述仓库最大版本的更新按钮图形化展示;
依赖更新模块,用于接收响应于对所述更新按钮的点击动作形成的更新指令,根据所述仓库最大版本的依赖对所述软件项目的最大版本号的依赖信息中对应所述依赖进行更新。
9.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7中任一项所述软件项目的依赖的版本管理方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述软件项目的依赖的版本管理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210710041.4A CN114968341A (zh) | 2022-06-22 | 2022-06-22 | 软件项目的依赖的版本管理方法及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210710041.4A CN114968341A (zh) | 2022-06-22 | 2022-06-22 | 软件项目的依赖的版本管理方法及相关设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114968341A true CN114968341A (zh) | 2022-08-30 |
Family
ID=82965386
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210710041.4A Pending CN114968341A (zh) | 2022-06-22 | 2022-06-22 | 软件项目的依赖的版本管理方法及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114968341A (zh) |
-
2022
- 2022-06-22 CN CN202210710041.4A patent/CN114968341A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109800154B (zh) | 测试数据的加载方法、装置、计算机设备及存储介质 | |
WO2020082558A1 (zh) | 基于函数名称的埋点方法、装置、计算机设备及存储介质 | |
CN111427596B (zh) | 一种软件升级的方法、装置及终端设备 | |
CN110704095A (zh) | 基于工作流的配置处理方法、装置、计算机设备和存储介质 | |
CN113835713B (zh) | 源码包下载方法、装置、计算机设备和存储介质 | |
CN112035186A (zh) | H5页面的预加载及跳转方法、装置、设备及介质 | |
CN112035114A (zh) | 页面回退方法、装置、设备及介质 | |
CN111638873A (zh) | 程序代码的生成方法、装置、计算机设备及存储介质 | |
CN111666516A (zh) | 页面加载方法、装置、电子设备及存储介质 | |
CN111552535A (zh) | 界面图片更换方法、装置、计算机设备和存储介质 | |
CN104699503A (zh) | 一种替换安卓系统中函数的执行逻辑的方法及装置 | |
CN110046100B (zh) | 一种分组测试的方法、电子设备及介质 | |
CN114968341A (zh) | 软件项目的依赖的版本管理方法及相关设备 | |
CN109451064A (zh) | web应用的离线实现方法、装置、计算机设备和存储介质 | |
CN115374083A (zh) | 数据源的切换方法、装置、电子设备及存储介质 | |
CN114936152A (zh) | 应用测试方法及设备 | |
CN112882902A (zh) | 线程来源获取方法、电子设备以及计算机可读存储装置 | |
CN113204533A (zh) | 日志级别调节方法、装置、计算机设备和存储介质 | |
CN114416486A (zh) | 应用程序的性能监控方法、装置、设备及程序产品 | |
CN112035127B (zh) | 安装应用的方法、装置、车辆、存储介质以及电子设备 | |
CN113778511A (zh) | 资源配置方法、装置、设备及存储介质 | |
CN113326052A (zh) | 业务组件的升级方法、装置、计算机设备和存储介质 | |
CN113535143A (zh) | 堆栈信息处理方法、装置、电子设备和存储介质 | |
CN112597408A (zh) | 一种系统融合方法、装置、设备和存储介质 | |
CN111367597A (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 |