System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及二方库配置,并且更具体地,涉及一种maven二方库的管控方法及系统。
技术介绍
1、随着企业级应用体系的日益庞大,java项目中的依赖管理也变得越来越复杂。一个典型的企业级应用都会依赖上百个开源类库和框架,除了这些三方库外,企业的大型系统都会采用模块化开发,这些模块会产生大量的内部依赖,即二方库。当企业提供标准产品和定制化开发时,这些二方库的管理和使用成为一个难题,这些二方库的版本关系错综复杂。如果每个项目组自己维护使用的二方库依赖版本,不仅大量重复劳动,也很容易出现jar包冲突。因此有效进行依赖管理成为java项目的一大难题。
2、传统通过maven方式直接管理依赖的方法在这个规模下已经显得捉襟见肘。每个项目组需要自行配置依赖版本,导致依赖容易不一致。同时依赖之间的版本冲突也时有发生。随着时间推移,依赖关系会变得越来越复杂。
3、为了解决这个问题,maven提供了依赖管理的概念,通常是由一个专门的项目来维护依赖版本。各个项目组将这个依赖管理项目作为parent,那么子项目就可以直接继承parent中控制的依赖版本。这在一定程度上缓解了依赖管理困境。
4、但是这种方案也存在一定问题。首先是对项目结构的侵入太深,子项目必须继承特定的parent。其次,依赖管理项目过于笨重,即使只改一个依赖也要重新发布。再者,不同产品线的依赖定制化需求也难以满足。
5、为了进一步优化这一现状,maven提供了新的依赖管理机制:bill of materials(bom)。bom本质上也是
6、bom带来的另一个优点是可重用性。多个项目可以共享一个bom来管理依赖版本,不同产品线也可以有各自的bom。这极大地提高了依赖管理的一致性与灵活性。通过合理使用bom,可以有效解决java企业项目中依赖管理的种种痛点。
7、总之,maven的bom机制为依赖管理提供了新的思路。但是仅仅提供版本控制还不够,仍需要简化使用方式。
技术实现思路
1、本专利技术提出一种maven二方库的管控方法及系统,以解决如何对二方库进行配置的问题。
2、为了解决上述问题,根据本专利技术的一个方面,提供了一种maven二方库的管控方法,所述方法包括:
3、基于需求的维度进行maven bom项目的创建,并基于所述maven bom项目维护所有二方依赖模块的版本信息,以通过定义和管理二方依赖模块的版本,实现按维度进行二方库版本的控制;
4、基于所述maven bom项目创建子模块starter,并将使用子模块starter时必须的依赖添加到starter的具体依赖中;其中,所述子模块starter通过parent继承所述mavenbom项目中管理的二方库版本;
5、基于应用场景进行所述maven bom项目或子模块starter的选择,以基于所述maven bom项目或子模块starter引入需要的依赖。
6、优选地,其中所述维度,包括:团队维度、产品维度和/或功能维度。
7、优选地,其中所述maven bom项目的打包类型为pom,所述maven bom项目中的dependencymanagement部分列举所有的二方依赖及其版本。
8、优选地,其中所述基于应用场景进行所述maven bom项目或子模块starter的选择,以基于所述maven bom项目或子模块starter引入需要的依赖,包括:
9、当应用场景为开发环境时,通过引入所述maven bom项目来管理二方库的依赖版本,根据开发的需要引入需要的接口依赖;
10、当应用场景为运行时环境时,通过引入所述子模块stater来使用二方库的依赖。
11、根据本专利技术的另一个方面,提供了一种maven二方库的管控系统,所述系统包括:
12、bom创建单元,用于基于需求的维度进行maven bom项目的创建,并基于所述mavenbom项目维护所有二方依赖模块的版本信息,以通过定义和管理二方依赖模块的版本,实现按维度进行二方库版本的控制;
13、starter创建单元,用于基于所述maven bom项目创建子模块starter,并将使用子模块starter时必须的依赖添加到starter的具体依赖中;其中,所述子模块starter通过parent继承所述maven bom项目中管理的二方库版本;
14、应用单元,用于基于应用场景进行所述maven bom项目或子模块starter的选择,以基于所述maven bom项目或子模块starter引入需要的依赖。
15、优选地,其中所述维度,包括:团队维度、产品维度和/或功能维度。
16、优选地,其中所述maven bom项目的打包类型为pom,所述maven bom项目中的dependencymanagement部分列举所有的二方依赖及其版本。
17、优选地,其中所述应用单元,基于应用场景进行所述maven bom项目或子模块starter的选择,以基于所述maven bom项目或子模块starter引入需要的依赖,包括:
18、当应用场景为开发环境时,通过引入所述maven bom项目来管理二方库的依赖版本,根据开发的需要引入需要的接口依赖;
19、当应用场景为运行时环境时,通过引入所述子模块stater来使用二方库的依赖。
20、基于本专利技术的另一方面,本专利技术提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现一种maven二方库的管控方法中任一项的步骤。
21、基于本专利技术的另一方面,本专利技术提供一种电子设备,包括:
22、上述的计算机可读存储介质;以及
23、一个或多个处理器,用于执行所述计算机可读存储介质中的程序。
24、本专利技术提供了一种maven二方库的管控方法及系统,包括:基于需求的维度进行maven bom项目的创建,并基于所述maven bom项目维护所有二方依赖模块的版本信息,以通过定义和管理二方依赖模块的版本,实现按维度进行二方库版本的控制;基于所述mavenbom项目创建子模块starter,并将使用子模块starter时必须的依赖添加到starter的具体依赖中;其中,所述子模块starter通过parent继承所述maven bom项目中管理的二方库版本;基于应用场景进行所述maven bom项目或子模块starter的选择,以基于所述maven bom项目或子模块starter引入需要的依赖。本专利技术使用bom从合适的维度管理二方库依赖本文档来自技高网...
【技术保护点】
1.一种Maven二方库的管控方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述维度,包括:团队维度、产品维度和/或功能维度。
3.根据权利要求1所述的方法,其特征在于,所述Maven BOM项目的打包类型为pom,所述Maven BOM项目中的dependencyManagement部分列举所有的二方依赖及其版本。
4.根据权利要求1所述的方法,其特征在于,所述基于应用场景进行所述Maven BOM项目或子模块Starter的选择,以基于所述Maven BOM项目或子模块Starter引入需要的依赖,包括:
5.一种Maven二方库的管控系统,其特征在于,所述系统包括:
6.根据权利要求5所述的系统,其特征在于,所述维度,包括:团队维度、产品维度和/或功能维度。
7.根据权利要求5所述的系统,其特征在于,所述Maven BOM项目的打包类型为pom,所述Maven BOM项目中的dependencyManagement部分列举所有的二方依赖及其版本。
8.根据权利要
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-4中任一项所述方法的步骤。
10.一种电子设备,其特征在于,包括:
...【技术特征摘要】
1.一种maven二方库的管控方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述维度,包括:团队维度、产品维度和/或功能维度。
3.根据权利要求1所述的方法,其特征在于,所述maven bom项目的打包类型为pom,所述maven bom项目中的dependencymanagement部分列举所有的二方依赖及其版本。
4.根据权利要求1所述的方法,其特征在于,所述基于应用场景进行所述maven bom项目或子模块starter的选择,以基于所述maven bom项目或子模块starter引入需要的依赖,包括:
5.一种maven二方库的管控系统,其特征在于,所述系统包括:
6.根据权利要求5...
【专利技术属性】
技术研发人员:刘增辉,武慧荣,李傲林,李南熹,尹相兵,
申请(专利权)人:航信云享科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。