Maven源码包第三方组件的检测方法及系统与流程

文档序号:29925371发布日期:2022-05-07 10:55阅读:392来源:国知局
Maven源码包第三方组件的检测方法及系统与流程
maven源码包第三方组件的检测方法及系统
技术领域
1.本发明涉及软件开发源码包组件检测技术领域,尤其涉及一种maven源码包第三方组件的检测方法及系统。


背景技术:

2.随着互联网时代的发展,软件的开发量和需求量也越来越大。为了实现高效的软件开发,项目管理工具技术应运而生。maven作为其中一种软件开发项目管理工具,因其统一的依赖管理、支持多种插件等特点,而被开发者广泛的在自己的项目中使用。渐渐的,maven源码包的安全性也受到人们的重视,项目中使用哪些第三方组件直接影响着整个系统的安全性,所以就出现了如何高效的检测maven源码包第三方组件的问题。然而,基于现有的maven源码包第三方组件检测方式,普遍具有检测稳定性差本检测速度慢的确定。


技术实现要素:

3.本发明的目的是解决上述技术问题而提供一种可有效提升检测速度和检测稳定性的maven源码包第三方组件的检测方法及系统。
4.为了实现上述目的,本发明公开了一种maven源码包第三方组件的检测方法,其包括:
5.创建本地组件库,所述组件库中存储有若干软件开发第三方组件的pom文件和jar文件;
6.接收用户上传的源码包,并通过调用maven平台的mvn命令对该源码包进行处理,以得到该源码包内的pom.tree文件,并监控所述mvn命令执行状态相关的日志文件,如果该日志文件在预设时长内无变化,则终止当前mvn命令的继续执行;
7.如果上述mvn命令成功执行,则对所获得的所述pom.tree文件进行解析,以获得所述源码包的依赖组件数据,并生成依赖组件列表,并将该依赖组件列表存入缓存。
8.较佳地,通过定期自动执行预设网络请求,从指定网络下载pom文件和jar文件到所述组件库。
9.较佳地,所述依赖组件数据包括依赖组件的坐标信息。
10.本发明还公开一种maven源码包第三方组件的检测系统,其包括组件库创建模块、执行模块、日志监控模块、解析模块和存储模块;
11.所述组件库创建模块,用于创建本地组件库,所述组件库中存储有若干软件开发第三方组件的pom文件和jar文件;
12.所述执行模块,用于接收用户上传的源码包,并通过调用maven平台的mvn命令对该源码包进行处理,以得到该源码包内的pom.tree文件;
13.所述日志监控模块,用于监控所述mvn命令执行状态相关的日志文件,如果该日志文件在预设时长内无变化,则所述执行模块终止当前mvn命令的继续执行;
14.所述解析模块,用于则对所获得的所述pom.tree文件进行解析,以获得所述源码
包的依赖组件数据,并生成依赖组件列表;
15.所述存储模块,用于将所述依赖组件列表存入缓存。
16.较佳地,所述组件库创建模块通过定期自动执行预设网络请求,从指定网络下载pom文件和jar文件到所述组件库。
17.较佳地,所述依赖组件数据包括依赖组件的坐标信息。
18.本发明还公开一种maven源码包第三方组件的检测系统,其包括:
19.一个或多个处理器;
20.存储器;
21.以及一个或多个程序,其中一个或多个程序被存储在所述存储器中,并且被配置成由所述一个或多个处理器执行,所述程序包括用于执行如上所述的maven源码包第三方组件的检测方法的指令。
22.本发明还公开一种计算机可读存储介质,其包括计算机程序,所述计算机程序可被处理器执行以完成如上所述的maven源码包第三方组件的检测方法。
23.与现有技术相比,本发明maven源码包第三方组件的检测方法,设置有组件库,当用户通过本发明公开的欲对目标源码包进行第三方组件检测时,只需将该源码包上传,然后即可通过调用maven平台的mvn命令和组件库对该源码包进行处理,以得到pom.tree文件,并通过对pom.tree文件的解析得到依赖组件数据,并将该依赖组件数据出入缓存;由此可知,上述检测方法通过本地组件库和mvn命令的自动调用,可有效提高检测速度,另外,由于将依赖组件存入缓存,当下次遇到相同源码包时可直接从缓存中读取依赖组件数据,从而进一步提升检测速度;再者,通过对mvn命令执行状态相关的日志文件的监控,可有效保证检测的稳定性,避免检测程序长时间处于无效状态。
附图说明
24.图1为本发明实施例中检查方法流程图。
25.图2为本发明实施例中检查系统结构示意图。
具体实施方式
26.为详细说明本发明的技术内容、构造特征、所实现目的及效果,以下结合实施方式并配合附图详予说明。
27.本实施例公开了一种maven源码包第三方组件的检测方法,以对通过maven项目管理平台进行软件开发过程中的源码包第三方组件的检测,具体地,如图1,该检测方法包括如下步骤:
28.s1:创建本地组件库,组件库中存储有若干常用软件开发第三方组件的pom文件和jar文件;
29.s2:接收用户上传的待测源码包;
30.s3:通过调用maven平台的mvn命令(mvn dependency:tree-doutputfile=pom.tree》pom.log)对该源码包进行处理,以得到该源码包内的pom.tree文件,并监控mvn命令执行状态相关的日志文件(pom.log);
31.s4:实时判断日志文件在预设时长内是否变化,如六秒,如果否,则执行s5,如果是
则执行s6;
32.s5:终止当前mvn命令的继续执行,也即终止本次检测,防止因某个组件的原因而长时间处于无效处理状态;另外需要说明的是,当程序发出终止执行当前检测工作的命令时,可同时发出报警信号,以提醒工作人员及时处理;
33.s6:对所获得的pom.tree文件进行解析,以获得源码包的依赖组件数据,并生成依赖组件列表;
34.s7:将依赖组件列表存入缓存。
35.更具体地,创建组件库时,通过定期自动执行预设网络请求(如https://repo1.maven.org/maven2),从指定网络下载pom文件和jar文件到组件库,从而有效确保组件库的高覆盖率,并能得到及时更新。
36.再者,上述实施例中,依赖组件数据包括依赖组件的坐标信息,包括groupid、artifactid、version、scope等信息。
37.通过上述检测方法进行maven开发平台中源码包第三方组件检测时,用户只需只需上次待测源码包,然后程序自动调用mvn命令和组件库对该源码包进行处理,以得到该源码包内的pom.tree文件,并通过对pom.tree文件的解析得到依赖组件数据,并将该依赖组件数据出入缓存。由此可知,上述检测方法通过本地组件库和mvn命令的自动调用,可有效提高检测速度。另外,由于将依赖组件存入缓存,当下次遇到相同源码包时可直接从缓存中读取依赖组件数据,从而进一步提升检测速度。再者,通过对mvn命令执行状态相关的日志文件的监控,可有效保证检测的稳定性,避免检测程序长时间处于无效状态。
38.本发明还公开一种maven源码包第三方组件的检测系统,如图2,其包括组件库创建模块10、执行模块11、日志监控模块12、解析模块13和存储模块14。
39.组件库创建模块10,用于创建本地组件库,组件库中存储有若干软件开发第三方组件的pom文件和jar文件。
40.执行模块11,用于接收用户上传的源码包,并通过调用maven平台的mvn命令对该源码包进行处理,以得到该源码包内的pom.tree文件。
41.日志监控模块12,用于监控mvn命令执行状态相关的日志文件,如果该日志文件在预设时长内无变化,则执行模块11终止当前mvn命令的继续执行。
42.解析模块13,用于对所获得的pom.tree文件进行解析,以获得源码包的依赖组件数据,并生成依赖组件列表。
43.存储模块14,用于将依赖组件列表存入缓存。
44.进一步地,组件库创建模块10通过定期自动执行预设网络请求,从指定网络下载pom文件和jar文件到组件库。
45.进一步地,依赖组件数据包括依赖组件的坐标信息。
46.本发明还公开另一种maven源码包第三方组件的检测系统,其包括一个或多个处理器、存储器以及一个或多个程序,其中一个或多个程序被存储在所述存储器中,并且被配置成由所述一个或多个处理器执行,所述程序包括用于执行如上所述的maven源码包第三方组件的检测方法的指令。处理器可以采用通用的中央处理器(central processing unit,cpu),微处理器,应用专用集成电路(application specific integrated circuit,asic),或者一个或多个集成电路,用于执行相关程序,以实现本技术实施例的maven源码包
第三方组件的检测系统中的模块所需执行的功能,或者执行本技术方法实施例的maven源码包第三方组件的检测方法。
47.本发明还公开一种计算机可读存储介质,其包括计算机程序,所述计算机程序可被处理器执行以完成如上所述的maven源码包第三方组件的检测方法。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是只读存储器(read-onlymemory,rom),或随机存取存储器(random access memory,ram),或磁性介质,例如,软盘、硬盘、磁带、磁碟、或光介质,例如,数字通用光盘(digital versatile disc,dvd)、或者半导体介质,例如,固态硬盘(solid state disk,ssd)等。
48.以上所揭露的仅为本发明的优选实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明申请专利范围所作的等同变化,仍属本发明所涵盖的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1