本发明涉及计算机应用,具体的说,是涉及一种软件产品组件版本管控方法、系统、存储介质及设备。
背景技术:
1、本部分的陈述仅仅是提供了与本发明相关的背景技术信息,不必然构成在先技术。
2、随着企业规模的发展壮大,软件产品也在一次次版本迭代中开发集成了越来越多的功能组件,亦发展出了多套子产品以在专有领域深耕。此时,如何更好地对众多项目中的软件产品组件使用情况进行采集、统计是亟需解决的问题。
3、举例来说,假设开发了组件c1、c2、c3,每个组件都有若干版本,如v1.0、v2.0,此时有两个项目p1、p2,p1中引用了组件c1(版本v2.0)、c3(版本v1.0),p2中引用了组件c1(版本v2.0)、c2(版本v2.0)、c3(版本v2.0),那应该如何获取这3个组件的使用情况?
4、在此之前,主要依靠硬编码(开发人员根据使用情况,将版本号记录在代码中,软件运行时上报数据)与问卷调查的方式,这些方式有如下问题:
5、(1)部分项目部署在内网环境下,与版本管控中心网络隔离,无法在软件运行时上报版本信息;
6、(2)项目实施工期紧张,组件引用关系错综复杂,开发人员需要耗费巨大精力来根据产品组件引用情况维护版本号,尤其是项目初期变动频繁的时候;
7、(3)定期发起的问卷调查无法保证准确性和普遍性,往往会因为时隔太久、人员变动等原因,导致调查结果与实际情况出现偏差。
技术实现思路
1、本发明为了解决上述问题,本发明提供一种软件产品组件版本管控方法、系统、存储介质及设备,开发人员无需维护版本信息,在编译时根据实际的组件引用情况构建版本记录信息,并上报以获取返回的组件信息,减少了开发人员的心智负担,方便开发人员及时了解组件更新情况,进行更新与漏洞修复,提升项目整体稳定性与安全性。
2、为了实现上述目的,本发明采用如下技术方案:
3、本发明的第一个方面提供一种软件产品组件版本管控方法,其包括:
4、响应于项目代码编译指令,处理被注解修饰的代码,得到项目代码的依赖树,根据依赖树构建依赖模型,将依赖模型中的若干组件及其版本号,组装成版本记录信息;
5、获取编译环境下的软硬件信息,得到编译环境信息;
6、将版本记录信息与编译环境信息组装为上报对象,并请求加密公钥,采用加密公钥加密上报对象,得到密文,上报密文以接收返回的组件信息。
7、进一步地,还包括:基于组件信息,在漏洞库中检索,判断是否存在漏洞及漏洞等级,并基于漏洞等级抛出异常中断编译。
8、进一步地,还包括:输出所述版本记录信息及组件信息至编译日志中。
9、进一步地,所述构建依赖模型时,剪除不在管控范围内的依赖组件,并处理嵌套引用和版本冲突。
10、进一步地,所述密文发送至版本管控中心,所述版本管控中心接收到密文后,使用私钥解密密文,得到上报对象,根据上报对象对组件库中的组件信息进行查询,将查询到的组件信息返回。
11、进一步地,所述版本管控中心将上报对象存入数据库,用于统计分析。
12、进一步地,所述组件信息包括组件的支持生命周期、版本日志和漏洞情况。
13、本发明的第二个方面提供一种软件产品组件版本管控系统,其包括:
14、版本记录信息组装模块,其被配置为:响应于项目代码编译指令,处理被注解修饰的代码,得到项目代码的依赖树,根据依赖树构建依赖模型,将依赖模型中的若干组件及其版本号,组装成版本记录信息;
15、编译环境信息获取模块,其被配置为:获取编译环境下的软硬件信息,得到编译环境信息;
16、组件信息获取模块,其被配置为:将版本记录信息与编译环境信息组装为上报对象,并请求加密公钥,采用加密公钥加密上报对象,得到密文,上报密文以接收返回的组件信息。
17、本发明的第三个方面提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行,该程序被处理器执行时实现如上述所述的一种软件产品组件版本管控方法中的步骤。
18、本发明的第四个方面提供一种计算机设备,包括存储器、处理器及存储在存储器上并在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述所述的一种软件产品组件版本管控方法中的步骤。
19、与现有技术相比,本发明的有益效果为:
20、本发明提供了一种软件产品组件版本管控方法,其开发人员无需维护版本信息,在编译时根据实际的组件引用情况构建版本记录信息,并上报以获取返回的组件信息,减少了开发人员的心智负担,方便开发人员及时了解组件更新情况,进行更新与漏洞修复,提升项目整体稳定性与安全性。
21、本发明提供了一种软件产品组件版本管控方法,其编译期间上报版本记录信息,避免了对生产环境产生性能影响,抵消了内网生产环境无网络的制约因素。
22、本发明提供了一种软件产品组件版本管控方法,其通过分析依赖树获取的组件版本记录更加准确,有助于组件开发人员根据组件版本使用情况规划功能迭代计划。
1.一种软件产品组件版本管控方法,其特征在于,包括:
2.如权利要求1所述的一种软件产品组件版本管控方法,其特征在于,还包括:基于组件信息,在漏洞库中检索,判断是否存在漏洞及漏洞等级,并基于漏洞等级抛出异常中断编译。
3.如权利要求1所述的一种软件产品组件版本管控方法,其特征在于,还包括:输出所述版本记录信息及组件信息至编译日志中。
4.如权利要求1所述的一种软件产品组件版本管控方法,其特征在于,所述构建依赖模型时,剪除不在管控范围内的依赖组件,并处理嵌套引用和版本冲突。
5.如权利要求1所述的一种软件产品组件版本管控方法,其特征在于,所述密文发送至版本管控中心,所述版本管控中心接收到密文后,使用私钥解密密文,得到上报对象,根据上报对象对组件库中的组件信息进行查询,将查询到的组件信息返回。
6.如权利要求5所述的一种软件产品组件版本管控方法,其特征在于,所述版本管控中心将上报对象存入数据库,用于统计分析。
7.如权利要求1所述的一种软件产品组件版本管控方法,其特征在于,所述组件信息包括组件的支持生命周期、版本日志和漏洞情况。
8.一种软件产品组件版本管控系统,其特征在于,包括:
9.一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行,其特征在于,该程序被处理器执行时实现如权利要求1-7中任一项所述的一种软件产品组件版本管控方法中的步骤。
10.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-7中任一项所述的一种软件产品组件版本管控方法中的步骤。