Maven源码包第三方组件的检测方法及系统技术方案

技术编号:33344269 阅读:13 留言:0更新日期:2022-05-08 09:35
本发明专利技术公开一种Maven源码包第三方组件的检测方法及系统,其中该检测方法包括:创建本地组件库,组件库中存储有软件开发第三方组件的pom文件和jar文件;接收用户上传的源码包,并通过调用mvn命令对该源码包进行处理,以得到该源码包内的pom.tree文件,并监控mvn命令执行状态相关的日志文件,如果该日志文件在预设时长内无变化,则终止当前mvn命令的继续执行;如果上述mvn命令成功执行,则对所获得的pom.tree文件进行解析,以获得源码包的依赖组件数据,并生成依赖组件列表,并将该依赖组件列表存入缓存;上述检测方法通过本地组件库和mvn命令的自动调用以及缓存的应用,可有效提高检测速度,另外,通过对mvn命令执行状态相关的日志文件的监控,可有效保证检测的稳定性。可有效保证检测的稳定性。可有效保证检测的稳定性。

【技术实现步骤摘要】
Maven源码包第三方组件的检测方法及系统


[0001]本专利技术涉及软件开发源码包组件检测
,尤其涉及一种Maven源码包第三方组件的检测方法及系统。

技术介绍

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

技术实现思路

[0003]本专利技术的目的是解决上述技术问题而提供一种可有效提升检测速度和检测稳定性的Maven源码包第三方组件的检测方法及系统。
[0004]为了实现上述目的,本专利技术公开了一种Maven源码包第三方组件的检测方法,其包括:
[0005]创建本地组件库,所述组件库中存储有若干软件开发第三方组件的pom文件和jar文件;
[0006]接收用户上传的源码包,并通过调用Maven平台的mvn命令对该源码包进行处理,以得到该源码包内的pom.tree文件,并监控所述mvn命令执行状态相关的日志文件,如果该日志文件在预设时长内无变化,则终止当前mvn命令的继续执行;
[0007]如果上述mvn命令成功执行,则对所获得的所述pom.tree文件进行解析,以获得所述源码包的依赖组件数据,并生成依赖组件列表,并将该依赖组件列表存入缓存。
[0008]较佳地,通过定期自动执行预设网络请求,从指定网络下载pom文件和jar文件到所述组件库。
[0009]较佳地,所述依赖组件数据包括依赖组件的坐标信息。
[0010]本专利技术还公开一种Maven源码包第三方组件的检测系统,其包括组件库创建模块、执行模块、日志监控模块、解析模块和存储模块;
[0011]所述组件库创建模块,用于创建本地组件库,所述组件库中存储有若干软件开发第三方组件的pom文件和jar文件;
[0012]所述执行模块,用于接收用户上传的源码包,并通过调用Maven平台的mvn命令对该源码包进行处理,以得到该源码包内的pom.tree文件;
[0013]所述日志监控模块,用于监控所述mvn命令执行状态相关的日志文件,如果该日志文件在预设时长内无变化,则所述执行模块终止当前mvn命令的继续执行;
[0014]所述解析模块,用于则对所获得的所述pom.tree文件进行解析,以获得所述源码
包的依赖组件数据,并生成依赖组件列表;
[0015]所述存储模块,用于将所述依赖组件列表存入缓存。
[0016]较佳地,所述组件库创建模块通过定期自动执行预设网络请求,从指定网络下载pom文件和jar文件到所述组件库。
[0017]较佳地,所述依赖组件数据包括依赖组件的坐标信息。
[0018]本专利技术还公开一种Maven源码包第三方组件的检测系统,其包括:
[0019]一个或多个处理器;
[0020]存储器;
[0021]以及一个或多个程序,其中一个或多个程序被存储在所述存储器中,并且被配置成由所述一个或多个处理器执行,所述程序包括用于执行如上所述的Maven源码包第三方组件的检测方法的指令。
[0022]本专利技术还公开一种计算机可读存储介质,其包括计算机程序,所述计算机程序可被处理器执行以完成如上所述的Maven源码包第三方组件的检测方法。
[0023]与现有技术相比,本专利技术Maven源码包第三方组件的检测方法,设置有组件库,当用户通过本专利技术公开的欲对目标源码包进行第三方组件检测时,只需将该源码包上传,然后即可通过调用Maven平台的mvn命令和组件库对该源码包进行处理,以得到pom.tree文件,并通过对pom.tree文件的解析得到依赖组件数据,并将该依赖组件数据出入缓存;由此可知,上述检测方法通过本地组件库和mvn命令的自动调用,可有效提高检测速度,另外,由于将依赖组件存入缓存,当下次遇到相同源码包时可直接从缓存中读取依赖组件数据,从而进一步提升检测速度;再者,通过对mvn命令执行状态相关的日志文件的监控,可有效保证检测的稳定性,避免检测程序长时间处于无效状态。
附图说明
[0024]图1为本专利技术实施例中检查方法流程图。
[0025]图2为本专利技术实施例中检查系统结构示意图。
具体实施方式
[0026]为详细说明本专利技术的
技术实现思路
、构造特征、所实现目的及效果,以下结合实施方式并配合附图详予说明。
[0027]本实施例公开了一种Maven源码包第三方组件的检测方法,以对通过Maven项目管理平台进行软件开发过程中的源码包第三方组件的检测,具体地,如图1,该检测方法包括如下步骤:
[0028]S1:创建本地组件库,组件库中存储有若干常用软件开发第三方组件的pom文件和jar文件;
[0029]S2:接收用户上传的待测源码包;
[0030]S3:通过调用Maven平台的mvn命令(mvn dependency:tree

DoutputFile=pom.tree>pom.log)对该源码包进行处理,以得到该源码包内的pom.tree文件,并监控mvn命令执行状态相关的日志文件(pom.log);
[0031]S4:实时判断日志文件在预设时长内是否变化,如六秒,如果否,则执行S5,如果是
则执行S6;
[0032]S5:终止当前mvn命令的继续执行,也即终止本次检测,防止因某个组件的原因而长时间处于无效处理状态;另外需要说明的是,当程序发出终止执行当前检测工作的命令时,可同时发出报警信号,以提醒工作人员及时处理;
[0033]S6:对所获得的pom.tree文件进行解析,以获得源码包的依赖组件数据,并生成依赖组件列表;
[0034]S7:将依赖组件列表存入缓存。
[0035]更具体地,创建组件库时,通过定期自动执行预设网络请求(如https://repo1.maven.org/maven2),从指定网络下载pom文件和jar文件到组件库,从而有效确保组件库的高覆盖率,并能得到及时更新。
[0036]再者,上述实施例中,依赖组件数据包括依赖组件的坐标信息,包括groupId、artifactId、version、scope等信息。
[0037]通过上述检测方法进行Maven开发平台中源码包第三方组件检测时,用户只需只需上次待测源码包,然后程序自动调用MVN命令和组件库对该源码包进行处理,以得到该源码包内的pom.tree文件,并通过对pom.tree文件的解析得到依赖组件数据,并将该依赖组件数据出入缓存。由此可知,上述检测方法通过本地组件本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种Maven源码包第三方组件的检测方法,其特征在于,包括:创建本地组件库,所述组件库中存储有若干软件开发第三方组件的pom文件和jar文件;接收用户上传的源码包,并通过调用Maven平台的mvn命令对该源码包进行处理,以得到该源码包内的pom.tree文件,并监控所述mvn命令执行状态相关的日志文件,如果该日志文件在预设时长内无变化,则终止当前mvn命令的继续执行;如果上述mvn命令成功执行,则对所获得的所述pom.tree文件进行解析,以获得所述源码包的依赖组件数据,并生成依赖组件列表,并将该依赖组件列表存入缓存。2.根据权利要求1所述的Maven源码包第三方组件的检测方法,其特征在于,通过定期自动执行预设网络请求,从指定网络下载pom文件和jar文件到所述组件库。3.根据权利要求1所述的Maven源码包第三方组件的检测方法,其特征在于,所述依赖组件数据包括依赖组件的坐标信息。4.一种Maven源码包第三方组件的检测系统,其特征在于,包括组件库创建模块、执行模块、日志监控模块、解析模块和存储模块;所述组件库创建模块,用于创建本地组件库,所述组件库中存储有若干软件开发第三方组件的pom文件和jar文件;所述执行模块,用于接收用户上传的源码包,并通过调用Maven平台的mvn命令...

【专利技术属性】
技术研发人员:洪二稳万振华王颉李华董燕
申请(专利权)人:深圳开源互联网安全技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1