一种Maven依赖的管理方法以及系统技术方案

技术编号:18349901 阅读:41 留言:0更新日期:2018-07-01 22:45
本发明专利技术公开了一种Maven依赖的管理方法以及系统,方法包括:S1、在Maven项目进行构建操作时,触发项目中的检查客户端请求检查服务端检查项目的Maven依赖是否存在问题;S2、检查服务端根据存储的Maven状态信息生成检查结果并反馈给检查客户端;S3、检查客户端解析接收的检查结果,并做出相关的处理。本发明专利技术基于检查客户端、检查服务端可以实现对项目的Maven依赖的统一检查和更新的管理,提高了Maven项目打包时依赖的文件的版本质量;避免了存在问题的Maven依赖对商用环境造成的不可预知的影响;降低了查找和更新Maven依赖的复杂程度,节省了人力和时间成本。

【技术实现步骤摘要】
一种Maven依赖的管理方法以及系统
本专利技术涉及计算机领域,尤其涉及一种Maven依赖的管理方法以及系统。
技术介绍
Maven是一个项目管理工具,它包含了一个项目对象模型(ProjectObjectModel,简称POM),一组标准集合,一个项目生命周期,一个依赖管理系统和用来运行定义在生命周期阶段中插件目标的逻辑。当使用Maven的时候,用一个明确定义的项目对象模型来描述你的项目,然后Maven可以应用横切的逻辑,这些逻辑来自一组共享的(或者自定义的)插件。其中,POM是在实体上表现为xml格式的文件pom.xml,是Maven工作的基础,每个Maven项目都包含一个pom.xml,在执行项目时,Maven会去项目的根目录下读取pom.xml,获得需要的配置信息。POM文件中包含了项目的信息和项目所需的配置信息,通常有项目信息(如版本、成员)、项目的依赖、插件和目标项等等。其中,依赖文件Artifact是一个项目通过Maven生成的最终文件,通常也叫Maven构件,可以是jar文件、源文件、二进制文件或者war文件,甚至是POM文件。每个Artifact都由一组唯一的标识符(由groupId、artifactId、version组成)进行标识。需要被使用(依赖)的Artifact都要放在Maven仓库中。当一个项目需要引用Maven仓库当中的Artifact时,需要在项目的pom.xml当中定义对Artifact的依赖,同时,这个被引用的Artifact本身和这种被引用的关系,也称为Maven依赖。在Maven项目中增加依赖时,需要指定Artifact的groupId、artifactId、version,但是在经过了一段时间后,依赖的Artifact因为某种原因进行了修改,例如修复了bug,修改了处理逻辑,这时Artifact的版本会发生变化,通常是版本号升级,例如原先是1.1.1,现在发布了1.1.2,这种被依赖Artifact的版本变化,不会主动的反馈给依赖此Artifact的Maven项目上,通常是由项目的开发维护人员主动(定期不定期的检查依赖的Artifact是否发布了新的版本)或者被动(出现问题时发现依赖的Artifact存在bug)的进行pom.xml当中artifact版本的检查和更新。当一个Artifact被多个Maven项目依赖,或者一个Maven项目依赖多个Artifact,这时Artifact依赖版本变更的检查和更新工作就变得非常复杂和繁琐。概括来讲,现有技术中,Maven依赖的引入和管理使用过程中,主要存在下述的问题:Maven依赖的版本使用混乱。同一个Maven依赖,有的项目依赖使用的版本低,有的依赖使用的版本高,没有对依赖版本进行统一的检查和监控管理;相同的功能需求,不同的项目引入了不同的Maven依赖。例如需要用到WebService框架,不同的项目分别引入了Axis2和CXF,增加了项目的复杂度;随意使用某个版本的Maven依赖,但是没有经过充分测试和验证,可能导致系统上线运行时出现问题;开发人员在引入Maven依赖时,面临选择合适版本依赖的困境,特别是在面对数量众多的Maven依赖以及同一Artifact的众多版本,如何快速准确的检查Maven依赖的版本是非常困难。
技术实现思路
本专利技术要解决的技术问题在于,针对现有技术的上述缺陷,提供一种Maven依赖的管理方法以及系统。本专利技术解决其技术问题所采用的技术方案是:构造一种Maven依赖的管理方法,包括:S1、在Maven项目进行构建操作时,触发项目中的检查客户端请求检查服务端检查项目的Maven依赖是否存在问题;S2、检查服务端根据存储的Maven状态信息生成检查结果并反馈给检查客户端;S3、检查客户端解析接收的检查结果,并做出相关的处理。在本专利技术所述的Maven依赖的管理方法中,所述步骤S1之前包括:编辑Maven项目的项目对象模型文件,添加作为检查客户端的Maven插件,以及在持久层存储Maven依赖信息;其中,所述持久层设置有接口以供用户编辑存储的Maven依赖信息。在本专利技术所述的Maven依赖的管理方法中,所述步骤S1包括:S10、Maven项目进行构建操作触发项目中的检查客户端;S11、获取当前项目依赖的所有依赖文件,生成依赖文件列表;S12、将依赖文件列表转化成JSON格式后通过HTTP请求发送给检查服务端。在本专利技术所述的Maven依赖的管理方法中,所述步骤S2包括:S21、接收检查客户端发起的请求,将请求的JSON格式的内容转换成依赖文件列表;S22、遍历依赖文件列表,针对依赖文件列表中的每一个依赖文件均执行步骤S23;S23、从持久层获取依赖文件,检查依赖文件的状态,如果依赖文件的状态为不推荐使用或者是禁用,查找推荐的其他依赖文件,将该依赖文件放入到检查结果列表当中;如果依赖文件的状态为未知或者可用,检查依赖文件的版本状态,如果依赖文件的版本状态为不推荐使用或者是禁用,查找推荐的其他依赖文件,将该依赖文件放入到检查结果列表当中;S24、遍历完成后将检查结果列表转化成JSON格式的响应消息返回给客户端。在本专利技术所述的Maven依赖的管理方法中,每个依赖文件由组合ID和版本唯一确定,检查客户端上传的依赖文件列表中包含各个依赖文件的组合ID和版本,持久层中的Maven依赖信息通过依赖文件信息表、依赖文件版本信息表关联存储;依赖文件信息表包括以下字段:作为主键的主键ID字段、表示依赖文件的组合ID的组合ID字段、表示依赖文件的状态的状态字段、关联依赖文件版本信息表的主键且表示推荐使用的版本的推荐字段;依赖文件版本信息表包括以下字段:作为主键的主键ID字段、作为外键关联依赖文件信息表的主键ID字段的关联字段、表示依赖文件的状态的状态字段、表示版本的版本字段、取值为依赖文件版本信息表的某个版本表记录的主键且表示推荐使用的版本的推荐字段。在本专利技术所述的Maven依赖的管理方法中,步骤S23中所述的检查依赖文件的状态包括:S231、基于当前依赖文件的组合ID,从依赖文件信息表查找相应的信息表记录,如果不存在信息表记录,则将当前依赖文件的组合ID字段添加到依赖文件信息表中产生一条新的信息表记录,并将当前依赖文件的版本和新的信息表记录的主键作为一条新的版本表记录添加到依赖文件版本信息表中,结束;如果存在信息表记录,则进入步骤S232;S232、如果信息表记录中的状态字段为未知或者可用,则进入步骤S233,如果信息表记录中的状态字段为不推荐使用或者是禁用,则将其设置为当前依赖文件的状态,将信息表记录中的推荐字段的版本设置为当前依赖文件的推荐版本,并将当前依赖文件添加到检查结果列表当中,结束;S233、基于信息表记录中的主键和依赖文件的版本,从依赖文件版本信息表中查找相应的版本表记录,如果不存在版本表记录,则将当前依赖文件的版本和其在信息表记录中的主键作为一条新的版本表记录添加到依赖文件版本信息表中,结束;如果存在版本表记录,则进入步骤S234;S234、如果版本表记录中的状态字段为不推荐使用或者是禁用则将其设置为当前依赖文件的状态,且将版本表记录中的推荐字段的版本设置为当前依赖文件的推荐版本,并将当前依赖文件本文档来自技高网
...
一种Maven依赖的管理方法以及系统

【技术保护点】
1.一种Maven依赖的管理方法,其特征在于,包括:S1、在Maven项目进行构建操作时,触发项目中的检查客户端请求检查服务端检查项目的Maven依赖是否存在问题;S2、检查服务端根据存储的Maven状态信息生成检查结果并反馈给检查客户端;S3、检查客户端解析接收的检查结果,并做出相关的处理。

【技术特征摘要】
1.一种Maven依赖的管理方法,其特征在于,包括:S1、在Maven项目进行构建操作时,触发项目中的检查客户端请求检查服务端检查项目的Maven依赖是否存在问题;S2、检查服务端根据存储的Maven状态信息生成检查结果并反馈给检查客户端;S3、检查客户端解析接收的检查结果,并做出相关的处理。2.根据权利要求1所述的Maven依赖的管理方法,其特征在于,所述步骤S1之前包括:编辑Maven项目的项目对象模型文件,添加作为检查客户端的Maven插件,以及在持久层存储Maven依赖信息;其中,所述持久层设置有接口以供用户编辑存储的Maven依赖信息。3.根据权利要求1所述的Maven依赖的管理方法,其特征在于,所述步骤S1包括:S10、Maven项目进行构建操作触发项目中的检查客户端;S11、获取当前项目依赖的所有依赖文件,生成依赖文件列表;S12、将依赖文件列表转化成JSON格式后通过HTTP请求发送给检查服务端。4.根据权利要求1所述的Maven依赖的管理方法,其特征在于,所述步骤S2包括:S21、接收检查客户端发起的请求,将请求的JSON格式的内容转换成依赖文件列表;S22、遍历依赖文件列表,针对依赖文件列表中的每一个依赖文件均执行步骤S23;S23、从持久层获取依赖文件,检查依赖文件的状态:如果依赖文件的状态为不推荐使用或者是禁用,查找推荐的其他依赖文件,将该依赖文件放入到检查结果列表当中;如果依赖文件的状态为未知或者可用,检查依赖文件的版本状态,如果依赖文件的版本状态为不推荐使用或者是禁用,查找推荐的其他依赖文件,将该依赖文件放入到检查结果列表当中;S24、遍历完成后将检查结果列表转化成JSON格式的响应消息返回给检查客户端。5.根据权利要求4所述的Maven依赖的管理方法,其特征在于,每个依赖文件由组合ID和版本唯一确定,检查客户端上传的依赖文件列表中包含各个依赖文件的组合ID和版本,持久层中的Maven依赖信息通过依赖文件信息表、依赖文件版本信息表关联存储;依赖文件信息表包括以下字段:作为主键的主键ID字段、表示依赖文件的组合ID的组合ID字段、表示依赖文件的状态的状态字段、关联依赖文件版本信息表的主键且表示推荐使用的版本的推荐字段;依赖文件版本信息表包括以下字段:作为主键的主键ID字段、作为外键关联依赖文件信息表的主键ID字段的关联字段、表示依赖文件的状态的状态字段、表示版本的版本字段、取值为依赖文件版本信息表的某个版本表记录的主键且表示推荐使用的版本的推荐字段。6.根据权利要求5所述的Maven依赖的管理方法,其特征在于,步骤S23中所述的检查依赖文件的状态包括:S231、基于当前依赖文件的组合ID,从依赖文件信息表查找相应的信息表记录,如果不存在信息表记录,则将当前依赖文件的组合ID字段添加到依赖文件信息表中产生一条新的信息表记录,并将当前依赖文件的版本和新的信息表记录的主键作为一条新的版本表记录添加到依赖文件版本信息表中,结束;如果存在信息表记录,则进入步骤S232;S232、如果信息表记录中的状态字段为未知或者可用,则进入步骤S233,如果信息表记录中的状态字段为不推荐使用或者是禁用,则将其设置为当前依赖文件的状态,将信息表记录中的推荐字段的版本设置为当前依赖文件的推荐版本,并将当前依赖文件添加到检查结果列表当中,结束;S233、基于信息表记录中的主键和依赖文件的版本,从依赖文件版本信息表中查找相应的版本表记录,如果不存在版本表记录,则将当前依赖文件的版本和其在信息表记录中的主键作...

【专利技术属性】
技术研发人员:郑先斌李晓义
申请(专利权)人:深圳业拓讯通信科技有限公司
类型:发明
国别省市:广东,44

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

1