CN114281402A - 一种软件版本管理方法及装置 - Google Patents
一种软件版本管理方法及装置 Download PDFInfo
- Publication number
- CN114281402A CN114281402A CN202111636840.3A CN202111636840A CN114281402A CN 114281402 A CN114281402 A CN 114281402A CN 202111636840 A CN202111636840 A CN 202111636840A CN 114281402 A CN114281402 A CN 114281402A
- Authority
- CN
- China
- Prior art keywords
- components
- version
- component
- software product
- publishing
- 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
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种软件版本管理方法及装置,能够解决无法快速应对瞬时访问量、新功能需求的激增带来的软件产品的新版本的发版、兼容的技术问题。所述方法包括:若触发指令指示紧急发版,基于所述全局组件依赖表,确定进行发版的各个组件、以及进行发版的各个组件的版本,组成发版组件集;若该触发指令指示需要新增功能并紧急发版,对日志进行语义分析,从中提取目标功能,研发团队开发完毕,将实现所述目标功能的组件、以及所述实现所述目标功能的组件依赖的全部组件作为精简版组件,对精简版组件进行发布;定期获取所述软件产品的当前最新编译版本,将当前最新编译版本对应的软件产品进行发布。
Description
技术领域
本发明涉及软件管理领域,具体涉及一种软件版本管理方法及装置。
背景技术
随着互联网技术的飞速发展,软件产品更新日益频繁,软件产品的更新、迭代越来越快,由于软件产品的功能越来越大,软件规模日益庞大。软件产品在发版时,需要对软件产品的各个组件、功能模块进行集成、编译,在软件产品的新版本投产时,容易出现组件间不兼容、软件产品由于集成时的漏洞,造成生产问题,影响软件产品的稳定性。
此外,对于某些对时效性要求较高的软件产品,在某些应用场景下,由于瞬时访问量、新功能需求的激增,造成软件产品不能满足用户使用需要,而临时上线新功能,由于时间紧,软件产品规模通常又较大,对软件产品的整体版本进行编译往往会出现失误,造成软件产品新版本发布不及时;不进行整体版本的编译,又会造成新功能与软件产品整体不兼容、对软件产品之前的版本、后续的版本的兼容性带来影响。长此以往,降低软件产品的开发效率,也会会降低用户粘性。
因此,设计一种软件版本管理方法及装置,既能够提供稳定的紧急情况下发版的新功能,又能兼顾软件产品组件的兼容性,是当前亟需解决的技术问题。
发明内容
有鉴于此,本发明提供了一种软件版本管理方法及装置,能够解决现有技术无法快速应对瞬时访问量、新功能需求的激增带来的软件产品的新版本的发版、兼容的技术问题。
为了解决上述技术问题,本发明是这样实现的。
一种软件版本管理方法,包括:
步骤S1:软件产品发版服务器监听指令,若获取到触发指令,进入步骤S2;否则,进入步骤S5;所述触发指令基于软件产品的运维服务器的访问情况生成;
步骤S2:若该触发指令指示紧急发版,进入步骤S3;若该触发指令指示需要新增功能并紧急发版,进入步骤S4;
步骤S3:对所述软件产品的各代码支线进行信息提取,获取各代码支线上各组件的版本信息、以及各代码支线的全局组件依赖表;所述软件产品具有多条代码支线,每条代码支线存储若干个构成软件产品的组件,每条代码支线存储一个全局组件依赖表、以及存储于该代码支线的组件的历次版本;
基于所述全局组件依赖表,确定进行发版的各个组件、以及进行发版的各个组件的版本,组成发版组件集合,对所述发版组件集合进行编译,并发布,方法结束;
步骤S4:基于软件产品的运维服务器的访问日志,对日志进行语义分析,从中提取目标功能,由需求人员确定与所述目标功能对应的需求,并将所述目标功能开发任务分配给研发团队;研发团队开发完毕,依据命名规则为实现所述目标功能的组件添加版本信息,更新该研发团队对应的代码支线的全局组件依赖表;
获取各代码支线上各组件的版本信息、以及各代码支线的全局组件依赖表;所述软件产品具有多条代码支线,每条代码支线存储若干个构成软件产品的组件,每条代码支线存储一个全局组件依赖表、以及存储于该代码支线的组件的历次版本;
基于所述全局组件依赖表,确定所述实现所述目标功能的组件依赖的全部组件,将所述实现所述目标功能的组件、以及所述实现所述目标功能的组件依赖的全部组件作为精简版组件,对精简版组件进行发布,方法结束;
步骤S5:定期获取所述软件产品的当前最新编译版本,将当前最新编译版本对应的软件产品进行发布。
优选地,所述步骤S1,所述运维服务器基于访问日志,从日志中提取访问时长、访问信息中携带的关键字、以及访问信息中的字符串序列,对其进行语义分析,将语义分析结果与所述软件产品的功能点进行匹配,若匹配成功,则所述软件产品能够覆盖该语义分析结果,将触发指令设置为指示紧急发版;若未能匹配成功,则所述软件产品不能覆盖该语义分析结果,将触发指令设置为需要新增功能并紧急发版。
优选地,所述步骤S3,所述基于所述全局组件依赖表,确定进行发版的各个组件、以及进行发版的各个组件的版本,组成发版组件集合,对所述发版组件集合进行编译,并发布,包括:
步骤S31:获取各代码支线的各组件的全部版本,所述全部版本包括组件的历次版本;
步骤S32:基于全局组件依赖表,确定包括所述软件产品的全部组件的候选序列,所述候选序列包括所述软件产品的全部组件、以及全部组件的版本信息;
步骤S33:获取候选序列中各组件的版本号,将版本号相加求和,所求得的和最大的候选序列,作为最优序列;将最优序列中包括的组件作为进行发版的各个组件,将最优序列中包括的各个组件的版本信息作为进行发版的各个组件的版本,组成发版组件集合,对所述发版组件集合进行编译,并发布。
优选地,所述步骤S4:所述基于所述全局组件依赖表,确定所述实现所述目标功能的组件依赖的全部组件,将所述实现所述目标功能的组件、以及所述实现所述目标功能的组件依赖的全部组件作为精简版组件,对精简版组件进行发布,包括:
步骤S41:基于所述全局组件依赖表,获取各代码支线的各组件的全部版本,所述全部版本包括组件的历次版本;
步骤S42:基于全局组件依赖表,确定所述实现所述目标功能的组件依赖的全部组件,获取所述实现所述目标功能的组件依赖的全部组件的最新的版本号;将具有最新的版本号的所述实现所述目标功能的组件依赖的全部组件、以及所述实现所述目标功能的组件依赖的全部组件作为精简版组件,对精简版组件进行发布。
本发明所提供的一种软件版本管理装置,所述装置包括:
监听模块:配置为软件产品发版服务器监听指令,若获取到触发指令,触发判断模块;否则,触发常规发版模块;所述触发指令基于软件产品的运维服务器的访问情况生成;
判断模块:配置为若该触发指令指示紧急发版,进入紧急发版模块;若该触发指令指示需要新增功能并紧急发版,进入新增功能模块;
紧急发版模块:配置为对所述软件产品的各代码支线进行信息提取,获取各代码支线上各组件的版本信息、以及各代码支线的全局组件依赖表;所述软件产品具有多条代码支线,每条代码支线存储若干个构成软件产品的组件,每条代码支线存储一个全局组件依赖表、以及存储于该代码支线的组件的历次版本;
基于所述全局组件依赖表,确定进行发版的各个组件、以及进行发版的各个组件的版本,组成发版组件集合,对所述发版组件集合进行编译,并发布;
新增功能模块:配置为基于软件产品的运维服务器的访问日志,对日志进行语义分析,从中提取目标功能,由需求人员确定与所述目标功能对应的需求,并将所述目标功能开发任务分配给研发团队;研发团队开发完毕,依据命名规则为实现所述目标功能的组件添加版本信息,更新该研发团队对应的代码支线的全局组件依赖表;
获取各代码支线上各组件的版本信息、以及各代码支线的全局组件依赖表;所述软件产品具有多条代码支线,每条代码支线存储若干个构成软件产品的组件,每条代码支线存储一个全局组件依赖表、以及存储于该代码支线的组件的历次版本;
基于所述全局组件依赖表,确定所述实现所述目标功能的组件依赖的全部组件,将所述实现所述目标功能的组件、以及所述实现所述目标功能的组件依赖的全部组件作为精简版组件,对精简版组件进行发布;
常规发版模块:配置为定期获取所述软件产品的当前最新编译版本,将当前最新编译版本对应的软件产品进行发布。
优选地,所述监听模块,所述运维服务器基于访问日志,从日志中提取访问时长、访问信息中携带的关键字、以及访问信息中的字符串序列,对其进行语义分析,将语义分析结果与所述软件产品的功能点进行匹配,若匹配成功,则所述软件产品能够覆盖该语义分析结果,将触发指令设置为指示紧急发版;若未能匹配成功,则所述软件产品不能覆盖该语义分析结果,将触发指令设置为需要新增功能并紧急发版。
优选地,所述紧急发版模块,包括:
组件获取子模块:配置为获取各代码支线的各组件的全部版本,所述全部版本包括组件的历次版本;
候选序列生成子模块:配置为基于全局组件依赖表,确定包括所述软件产品的全部组件的候选序列,所述候选序列包括所述软件产品的全部组件、以及全部组件的版本信息;
最优序列获取子模块:配置为获取候选序列中各组件的版本号,将版本号相加求和,所求得的和最大的候选序列,作为最优序列;将最优序列中包括的组件作为进行发版的各个组件,将最优序列中包括的各个组件的版本信息作为进行发版的各个组件的版本,组成发版组件集合,对所述发版组件集合进行编译,并发布。
优选地,所述新增功能模块,包括:
组件获取子模块:配置为基于所述全局组件依赖表,获取各代码支线的各组件的全部版本,所述全部版本包括组件的历次版本;
精简版生成子模块:配置为基于全局组件依赖表,确定所述实现所述目标功能的组件依赖的全部组件,获取所述实现所述目标功能的组件依赖的全部组件的最新的版本号;将具有最新的版本号的所述实现所述目标功能的组件依赖的全部组件、以及所述实现所述目标功能的组件依赖的全部组件作为精简版组件,对精简版组件进行发布。
本发明所提供的一种软件版本管理系统,包括:
处理器,用于执行多条指令;
存储器,用于存储多条指令;
其中,所述多条指令,用于由所述存储器存储,并由所述处理器加载并执行如前所述方法。
本发明所提供的一种计算机可读存储介质,所述存储介质中存储有多条指令;所述多条指令,用于由处理器加载并执行如前所述方法。
有益效果:相对于现有技术,本发明提出的软件版本管理方法及装置,基于对运维服务器的日志信息的分析,确定是否需要采用紧急发版的方式发布软件产品。设置了三种发布软件产品的方式,分别是紧急发版、新增功能并紧急发版、常规发版,以解决不同的发版需求。设置了全局组件依赖表,针对不同的发布软件产品的模式,基于全局组件依赖表获取组件之间的依赖关系、组件的版本关系、在不同的发版模式下确定参与发版的组件及其版本,能够应对多种使用场景,并实现快速、准确发布版本,避免组件间的不兼容,能够智能化地分析软件产品所需功能,降低了发布版本的时间,提高了发布版本的准确性、及时性、智能性。
附图说明
图1为软件版本管理方法流程示意图;
图2为软件版本管理装置结构框图。
具体实施方式
下面结合附图和实施例,对本发明进行详细描述。
本发明提出了一种软件版本管理方法,该方法基于对运维服务器的日志信息的分析,确定是否需要采用紧急发版的方式发布软件产品。本发明设置了三种发布软件产品的方式,分别是紧急发版、新增功能并紧急发版、常规发版,以解决不同的发版需求。设置了全局组件依赖表,针对不同的发布软件产品的模式,基于全局组件依赖表获取组件之间的依赖关系、组件的版本关系、在不同的发版模式下确定参与发版的组件及其版本,能够应对多种使用场景,并实现快速、准确发布版本,避免组件间的不兼容,能够智能化地分析软件产品所需功能,降低了发布版本的时间,提高了发布版本的准确性、及时性、智能性。
如图1所示,本发明提供的软件版本管理方法,包括如下步骤:
步骤S1:软件产品发版服务器监听指令,若获取到触发指令,进入步骤S2;否则,进入步骤S5;所述触发指令基于软件产品的运维服务器的访问情况生成;
步骤S2:若该触发指令指示紧急发版,进入步骤S3;若该触发指令指示需要新增功能并紧急发版,进入步骤S4;
步骤S3:对所述软件产品的各代码支线进行信息提取,获取各代码支线上各组件的版本信息、以及各代码支线的全局组件依赖表;所述软件产品具有多条代码支线,每条代码支线存储若干个构成软件产品的组件,每条代码支线存储一个全局组件依赖表、以及存储于该代码支线的组件的历次版本;
基于所述全局组件依赖表,确定进行发版的各个组件、以及进行发版的各个组件的版本,组成发版组件集合,对所述发版组件集合进行编译,并发布,方法结束;
步骤S4:基于软件产品的运维服务器的访问日志,对日志进行语义分析,从中提取目标功能,由需求人员确定与所述目标功能对应的需求,并将所述目标功能开发任务分配给研发团队;研发团队开发完毕,依据命名规则为实现所述目标功能的组件添加版本信息,更新该研发团队对应的代码支线的全局组件依赖表;
获取各代码支线上各组件的版本信息、以及各代码支线的全局组件依赖表;所述软件产品具有多条代码支线,每条代码支线存储若干个构成软件产品的组件,每条代码支线存储一个全局组件依赖表、以及存储于该代码支线的组件的历次版本;
基于所述全局组件依赖表,确定所述实现所述目标功能的组件依赖的全部组件,将所述实现所述目标功能的组件、以及所述实现所述目标功能的组件依赖的全部组件作为精简版组件,对精简版组件进行发布,方法结束;
步骤S5:定期获取所述软件产品的当前最新编译版本,将当前最新编译版本对应的软件产品进行发布。
所述步骤S1:软件产品发版服务器监听指令,若获取到触发指令,进入步骤S2;否则,进入步骤S5;所述触发指令基于软件产品的运维服务器的访问情况生成,其中:
软件产品在运维服务器上运行,运维服务器通过比较当前一段时间的访问数据与历史同期访问数据,确定当前访问出现异常。例如,异常是由于突发热点造成或其他应用情况产生,造成当前访问数据瞬时增大。
所述运维服务器基于访问日志,从日志中提取访问时长、访问信息中携带的关键字、以及访问信息中的字符串序列,对其进行语义分析,将语义分析结果与所述软件产品的功能点进行匹配,若匹配成功,则所述软件产品能够覆盖该语义分析结果,将触发指令设置为指示紧急发版;若未能匹配成功,则所述软件产品不能覆盖该语义分析结果,将触发指令设置为需要新增功能并紧急发版。
本实施例中,所述软件产品具有多条代码支线,每条代码支线存储若干个构成软件产品的组件,每条代码支线存储一个全局组件依赖表、以及存储于该代码支线的组件的历次版本。全局组件依赖表包括软件产品组件标识、组件版本号、存储地址、前序组件、后序组件;所述存储地址为该版本的组件的存储地址,所述前序组件,是指组件在软件产品中所直接依赖的组件及所直接依赖的组件的版本;所述后序组件,是指在软件产品中,直接依赖于该组件的组件及直接依赖于该组件的组件的版本。对于软件产品的某条代码支线,该代码支线中的全局组件依赖表记录了该条代码支线中存储的各个组件的相关信息。也就是说,不同代码支线中存储的全局组件依赖表可能是不同的,并且,可以在各个代码支线中查询全局组件依赖表,以获取组件的前序组件、后序组件。全局组件依赖表如表1所示:
表1全局组件依赖表
本实施例中,全局组件依赖表中的某个组件,其前序组件、后序组件既可在存储该全局组件依赖表对应的代码支线中,也可以存储在其他代码支线中。如表1所示,版本号为1的、标识号为ID_1的组件,依赖于标识号为ID_2的、版本号为2的组件。
代码支线所存储的组件,是基于软件产品设计时的功能确定的,或基于研发团队确定的。可以根据软件产品的功能,基于低耦合的设计原则对软件产品的功能进行划分,关联度高的组件部署于同一代码支线上;也可以根据研发团队进行代码支线的分配,同一研发团队研发的组件部署于同一代码支线上。
所述步骤S3,所述基于所述全局组件依赖表,确定进行发版的各个组件、以及进行发版的各个组件的版本,组成发版组件集合,对所述发版组件集合进行编译,并发布,包括:
步骤S31:获取各代码支线的各组件的全部版本,所述全部版本包括组件的历次版本;
步骤S32:基于全局组件依赖表,确定包括所述软件产品的全部组件的候选序列,所述候选序列包括所述软件产品的全部组件、以及全部组件的版本信息;
本实施例中,基于全局组件依赖表,获取各组件的版本、各组件的前序组件、前序组件的版本、各组件的后序组件、后序组件的版本,以多叉树的方式确定包括软件产品的全部组件、以及全部组件中各组件的版本信息的多个候选序列,所述候选序列中不存在冲突,是一个能够运行的软件产品的组件序列。
步骤S33:获取候选序列中各组件的版本号,将版本号相加求和,所求得的和最大的候选序列,作为最优序列;将最优序列中包括的组件作为进行发版的各个组件,将最优序列中包括的各个组件的版本信息作为进行发版的各个组件的版本,组成发版组件集合,对所述发版组件集合进行编译,并发布。
本实施例中,在多个候选序列中,通过将版本号相加的方式,能够尽可能地获得较多、较新的组件。
所述步骤S4:所述基于所述全局组件依赖表,确定所述实现所述目标功能的组件依赖的全部组件,将所述实现所述目标功能的组件、以及所述实现所述目标功能的组件依赖的全部组件作为精简版组件,对精简版组件进行发布,包括:
步骤S41:基于所述全局组件依赖表,获取各代码支线的各组件的全部版本,所述全部版本包括组件的历次版本;
步骤S42:基于全局组件依赖表,确定所述实现所述目标功能的组件依赖的全部组件,获取所述实现所述目标功能的组件依赖的全部组件的最新的版本号;将具有最新的版本号的所述实现所述目标功能的组件依赖的全部组件、以及所述实现所述目标功能的组件依赖的全部组件作为精简版组件,对精简版组件进行发布。
本实施例中,由于实现所述目标功能的组件是新研发的组件,则其在研发过程中,会考虑到兼容性,因此,可以直接获取具有最新的版本号的所述实现所述目标功能的组件依赖的全部组件,再将具有最新的版本号的所述实现所述目标功能的组件依赖的全部组件、以及所述实现所述目标功能的组件依赖的全部组件作为精简版组件,对精简版组件进行发布,将精简版挂载到运维服务器中运行的软件产品中。
所述步骤S5:定期获取所述软件产品的当前最新编译版本,将当前最新编译版本对应的软件产品进行发布,其目的是在没有紧急、突发的情况时,按照常规的方式定期、定时发布新版的软件产品。
本发明还提供了一种软件版本管理装置,如图2所示,该装置包括:
监听模块:配置为软件产品发版服务器监听指令,若获取到触发指令,触发判断模块;否则,触发常规发版模块;所述触发指令基于软件产品的运维服务器的访问情况生成;
判断模块:配置为若该触发指令指示紧急发版,进入紧急发版模块;若该触发指令指示需要新增功能并紧急发版,进入新增功能模块;
紧急发版模块:配置为对所述软件产品的各代码支线进行信息提取,获取各代码支线上各组件的版本信息、以及各代码支线的全局组件依赖表;所述软件产品具有多条代码支线,每条代码支线存储若干个构成软件产品的组件,每条代码支线存储一个全局组件依赖表、以及存储于该代码支线的组件的历次版本;
基于所述全局组件依赖表,确定进行发版的各个组件、以及进行发版的各个组件的版本,组成发版组件集合,对所述发版组件集合进行编译,并发布;
新增功能模块:配置为基于软件产品的运维服务器的访问日志,对日志进行语义分析,从中提取目标功能,由需求人员确定与所述目标功能对应的需求,并将所述目标功能开发任务分配给研发团队;研发团队开发完毕,依据命名规则为实现所述目标功能的组件添加版本信息,更新该研发团队对应的代码支线的全局组件依赖表;
获取各代码支线上各组件的版本信息、以及各代码支线的全局组件依赖表;所述软件产品具有多条代码支线,每条代码支线存储若干个构成软件产品的组件,每条代码支线存储一个全局组件依赖表、以及存储于该代码支线的组件的历次版本;
基于所述全局组件依赖表,确定所述实现所述目标功能的组件依赖的全部组件,将所述实现所述目标功能的组件、以及所述实现所述目标功能的组件依赖的全部组件作为精简版组件,对精简版组件进行发布;
常规发版模块:配置为定期获取所述软件产品的当前最新编译版本,将当前最新编译版本对应的软件产品进行发布。
本发明实施例进一步给出一种软件版本管理系统,包括:
处理器,用于执行多条指令;
存储器,用于存储多条指令;
其中,所述多条指令,用于由所述存储器存储,并由所述处理器加载并执行如前所述软件版本管理方法。
本发明实施例进一步给出一种计算机可读存储介质,所述存储介质中存储有多条指令;所述多条指令,用于由处理器加载并执行如前所述软件版本管理方法。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机装置(可以是个人计算机,实体机服务器,或者网络云服务器等,需安装Windows或者Windows Server操作系统)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。
Claims (10)
1.一种软件版本管理方法,其特征在于,包括:
步骤S1:软件产品发版服务器监听指令,若获取到触发指令,进入步骤S2;否则,进入步骤S5;所述触发指令基于软件产品的运维服务器的访问情况生成;
步骤S2:若该触发指令指示紧急发版,进入步骤S3;若该触发指令指示需要新增功能并紧急发版,进入步骤S4;
步骤S3:对所述软件产品的各代码支线进行信息提取,获取各代码支线上各组件的版本信息、以及各代码支线的全局组件依赖表;所述软件产品具有多条代码支线,每条代码支线存储若干个构成软件产品的组件,每条代码支线存储一个全局组件依赖表、以及存储于该代码支线的组件的历次版本;
基于所述全局组件依赖表,确定进行发版的各个组件、以及进行发版的各个组件的版本,组成发版组件集合,对所述发版组件集合进行编译,并发布,方法结束;
步骤S4:基于软件产品的运维服务器的访问日志,对日志进行语义分析,从中提取目标功能,由需求人员确定与所述目标功能对应的需求,并将所述目标功能开发任务分配给研发团队;研发团队开发完毕,依据命名规则为实现所述目标功能的组件添加版本信息,更新该研发团队对应的代码支线的全局组件依赖表;
获取各代码支线上各组件的版本信息、以及各代码支线的全局组件依赖表;所述软件产品具有多条代码支线,每条代码支线存储若干个构成软件产品的组件,每条代码支线存储一个全局组件依赖表、以及存储于该代码支线的组件的历次版本;
基于所述全局组件依赖表,确定所述实现所述目标功能的组件依赖的全部组件,将所述实现所述目标功能的组件、以及所述实现所述目标功能的组件依赖的全部组件作为精简版组件,对精简版组件进行发布,方法结束;
步骤S5:定期获取所述软件产品的当前最新编译版本,将当前最新编译版本对应的软件产品进行发布。
2.如权利要求1所述的方法,其特征在于,所述步骤S1,所述运维服务器基于访问日志,从日志中提取访问时长、访问信息中携带的关键字、以及访问信息中的字符串序列,对其进行语义分析,将语义分析结果与所述软件产品的功能点进行匹配,若匹配成功,则所述软件产品能够覆盖该语义分析结果,将触发指令设置为指示紧急发版;若未能匹配成功,则所述软件产品不能覆盖该语义分析结果,将触发指令设置为需要新增功能并紧急发版。
3.如权利要求2所述的方法,其特征在于,所述步骤S3,所述基于所述全局组件依赖表,确定进行发版的各个组件、以及进行发版的各个组件的版本,组成发版组件集合,对所述发版组件集合进行编译,并发布,包括:
步骤S31:获取各代码支线的各组件的全部版本,所述全部版本包括组件的历次版本;
步骤S32:基于全局组件依赖表,确定包括所述软件产品的全部组件的候选序列,所述候选序列包括所述软件产品的全部组件、以及全部组件的版本信息;
步骤S33:获取候选序列中各组件的版本号,将版本号相加求和,所求得的和最大的候选序列,作为最优序列;将最优序列中包括的组件作为进行发版的各个组件,将最优序列中包括的各个组件的版本信息作为进行发版的各个组件的版本,组成发版组件集合,对所述发版组件集合进行编译,并发布。
4.如权利要求3所述的方法,其特征在于,所述步骤S4:所述基于所述全局组件依赖表,确定所述实现所述目标功能的组件依赖的全部组件,将所述实现所述目标功能的组件、以及所述实现所述目标功能的组件依赖的全部组件作为精简版组件,对精简版组件进行发布,包括:
步骤S41:基于所述全局组件依赖表,获取各代码支线的各组件的全部版本,所述全部版本包括组件的历次版本;
步骤S42:基于全局组件依赖表,确定所述实现所述目标功能的组件依赖的全部组件,获取所述实现所述目标功能的组件依赖的全部组件的最新的版本号;将具有最新的版本号的所述实现所述目标功能的组件依赖的全部组件、以及所述实现所述目标功能的组件依赖的全部组件作为精简版组件,对精简版组件进行发布。
5.一种软件版本管理装置,其特征在于,所述装置包括:
监听模块:配置为软件产品发版服务器监听指令,若获取到触发指令,触发判断模块;否则,触发常规发版模块;所述触发指令基于软件产品的运维服务器的访问情况生成;
判断模块:配置为若该触发指令指示紧急发版,进入紧急发版模块;若该触发指令指示需要新增功能并紧急发版,进入新增功能模块;
紧急发版模块:配置为对所述软件产品的各代码支线进行信息提取,获取各代码支线上各组件的版本信息、以及各代码支线的全局组件依赖表;所述软件产品具有多条代码支线,每条代码支线存储若干个构成软件产品的组件,每条代码支线存储一个全局组件依赖表、以及存储于该代码支线的组件的历次版本;
基于所述全局组件依赖表,确定进行发版的各个组件、以及进行发版的各个组件的版本,组成发版组件集合,对所述发版组件集合进行编译,并发布;
新增功能模块:配置为基于软件产品的运维服务器的访问日志,对日志进行语义分析,从中提取目标功能,由需求人员确定与所述目标功能对应的需求,并将所述目标功能开发任务分配给研发团队;研发团队开发完毕,依据命名规则为实现所述目标功能的组件添加版本信息,更新该研发团队对应的代码支线的全局组件依赖表;
获取各代码支线上各组件的版本信息、以及各代码支线的全局组件依赖表;所述软件产品具有多条代码支线,每条代码支线存储若干个构成软件产品的组件,每条代码支线存储一个全局组件依赖表、以及存储于该代码支线的组件的历次版本;
基于所述全局组件依赖表,确定所述实现所述目标功能的组件依赖的全部组件,将所述实现所述目标功能的组件、以及所述实现所述目标功能的组件依赖的全部组件作为精简版组件,对精简版组件进行发布;
常规发版模块:配置为定期获取所述软件产品的当前最新编译版本,将当前最新编译版本对应的软件产品进行发布。
6.如权利要求5所述的装置,其特征在于,所述监听模块,所述运维服务器基于访问日志,从日志中提取访问时长、访问信息中携带的关键字、以及访问信息中的字符串序列,对其进行语义分析,将语义分析结果与所述软件产品的功能点进行匹配,若匹配成功,则所述软件产品能够覆盖该语义分析结果,将触发指令设置为指示紧急发版;若未能匹配成功,则所述软件产品不能覆盖该语义分析结果,将触发指令设置为需要新增功能并紧急发版。
7.如权利要求6所述的装置,其特征在于,所述紧急发版模块,包括:
组件获取子模块:配置为获取各代码支线的各组件的全部版本,所述全部版本包括组件的历次版本;
候选序列生成子模块:配置为基于全局组件依赖表,确定包括所述软件产品的全部组件的候选序列,所述候选序列包括所述软件产品的全部组件、以及全部组件的版本信息;
最优序列获取子模块:配置为获取候选序列中各组件的版本号,将版本号相加求和,所求得的和最大的候选序列,作为最优序列;将最优序列中包括的组件作为进行发版的各个组件,将最优序列中包括的各个组件的版本信息作为进行发版的各个组件的版本,组成发版组件集合,对所述发版组件集合进行编译,并发布。
8.如权利要求7所述的装置,其特征在于,所述新增功能模块,包括:
组件获取子模块:配置为基于所述全局组件依赖表,获取各代码支线的各组件的全部版本,所述全部版本包括组件的历次版本;
精简版生成子模块:配置为基于全局组件依赖表,确定所述实现所述目标功能的组件依赖的全部组件,获取所述实现所述目标功能的组件依赖的全部组件的最新的版本号;将具有最新的版本号的所述实现所述目标功能的组件依赖的全部组件、以及所述实现所述目标功能的组件依赖的全部组件作为精简版组件,对精简版组件进行发布。
9.一种软件版本管理系统,包括:
处理器,用于执行多条指令;
存储器,用于存储多条指令;
其中,所述多条指令,用于由所述存储器存储,并由所述处理器加载并执行如权利要求1-4中任一项所述方法。
10.一种计算机可读存储介质,所述存储介质中存储有多条指令;所述多条指令,用于由处理器加载并执行如权利要求1-4中任一项所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111636840.3A CN114281402A (zh) | 2021-12-29 | 2021-12-29 | 一种软件版本管理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111636840.3A CN114281402A (zh) | 2021-12-29 | 2021-12-29 | 一种软件版本管理方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114281402A true CN114281402A (zh) | 2022-04-05 |
Family
ID=80877834
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111636840.3A Pending CN114281402A (zh) | 2021-12-29 | 2021-12-29 | 一种软件版本管理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114281402A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117492803A (zh) * | 2023-12-28 | 2024-02-02 | 深圳市一诺智控科技有限公司 | 一种智能门锁pcba软件升级方法及系统 |
-
2021
- 2021-12-29 CN CN202111636840.3A patent/CN114281402A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117492803A (zh) * | 2023-12-28 | 2024-02-02 | 深圳市一诺智控科技有限公司 | 一种智能门锁pcba软件升级方法及系统 |
CN117492803B (zh) * | 2023-12-28 | 2024-03-26 | 深圳市一诺智控科技有限公司 | 一种智能门锁pcba软件升级方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110795455B (zh) | 依赖关系解析方法、电子装置、计算机设备及可读存储介质 | |
CN112559554B (zh) | 一种查询语句优化方法及装置 | |
US8484638B2 (en) | Infrastructure for the automation of the assembly of schema maintenance scripts | |
US9213707B2 (en) | Ordered access of interrelated data files | |
CN108536761A (zh) | 报表数据查询方法及服务器 | |
CN107798030B (zh) | 数据表的拆分方法和装置 | |
CN108319711A (zh) | 数据库的事务一致性测试方法、装置、存储介质及设备 | |
CN110737437A (zh) | 一种基于代码集成的编译方法和装置 | |
CN114116856A (zh) | 基于数据治理全链路的字段级血缘关系分析方法 | |
CN114281402A (zh) | 一种软件版本管理方法及装置 | |
CN114048227A (zh) | Sql语句异常检测方法、装置、设备及存储介质 | |
CN113190218A (zh) | 目标操作函数的生成方法和装置 | |
CN112052039A (zh) | 一种多项目同步构建的方法、装置及电子设备 | |
CN101894317A (zh) | 数据变化驱动业务逻辑的方法和系统 | |
CN116595044A (zh) | 数据库选择率计算的优化方法、存储介质与设备 | |
CN112069052A (zh) | 一种异常对象检测方法、装置、设备及存储介质 | |
CN115757174A (zh) | 一种数据库的差异检测方法及装置 | |
CN113868138A (zh) | 测试数据的获取方法、系统、设备及存储介质 | |
CN113342647A (zh) | 一种测试数据的生成方法及装置 | |
US20140289184A1 (en) | License structure representation for license management | |
CN111339378A (zh) | 一种运维管理中的字符命令审计方法及系统 | |
CN111400396A (zh) | 数据同步脚本的生成方法、装置及计算机可读存储介质 | |
CN110737429A (zh) | 一种利用Makefile自身的依赖关系的模块化编译方法和装置 | |
CN111221551B (zh) | 数据库升级方法及装置 | |
CN114968350A (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 |