一种Maven二方库的管控方法及系统与流程

    专利2024-12-29  7


    本发明涉及二方库配置,并且更具体地,涉及一种maven二方库的管控方法及系统。


    背景技术:

    1、随着企业级应用体系的日益庞大,java项目中的依赖管理也变得越来越复杂。一个典型的企业级应用都会依赖上百个开源类库和框架,除了这些三方库外,企业的大型系统都会采用模块化开发,这些模块会产生大量的内部依赖,即二方库。当企业提供标准产品和定制化开发时,这些二方库的管理和使用成为一个难题,这些二方库的版本关系错综复杂。如果每个项目组自己维护使用的二方库依赖版本,不仅大量重复劳动,也很容易出现jar包冲突。因此有效进行依赖管理成为java项目的一大难题。

    2、传统通过maven方式直接管理依赖的方法在这个规模下已经显得捉襟见肘。每个项目组需要自行配置依赖版本,导致依赖容易不一致。同时依赖之间的版本冲突也时有发生。随着时间推移,依赖关系会变得越来越复杂。

    3、为了解决这个问题,maven提供了依赖管理的概念,通常是由一个专门的项目来维护依赖版本。各个项目组将这个依赖管理项目作为parent,那么子项目就可以直接继承parent中控制的依赖版本。这在一定程度上缓解了依赖管理困境。

    4、但是这种方案也存在一定问题。首先是对项目结构的侵入太深,子项目必须继承特定的parent。其次,依赖管理项目过于笨重,即使只改一个依赖也要重新发布。再者,不同产品线的依赖定制化需求也难以满足。

    5、为了进一步优化这一现状,maven提供了新的依赖管理机制:bill of materials(bom)。bom本质上也是一个maven项目,它通过dependencymanagement元素来控制依赖版本。但不同于parent,使用bom的子项目不需要继承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从合适的维度管理二方库依赖,继承bom创建starter,维护运行时所需的依赖,开发时使用bom,按需引入需要的依赖,运行时使用starter,自动引入必须的依赖和正确的版本,能够为java企业级项目的二方库依赖管理提供了完整可行的解决方案,其显著的技术优势和效果有助于减少项目成本、提高开发效率、增强系统质量。


    技术特征:

    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.根据权利要求5所述的系统,其特征在于,所述应用单元,基于应用场景进行所述maven bom项目或子模块starter的选择,以基于所述maven bom项目或子模块starter引入需要的依赖,包括:

    9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-4中任一项所述方法的步骤。

    10.一种电子设备,其特征在于,包括:


    技术总结
    本发明公开了一种Maven二方库的管控方法及系统,包括:基于需求的维度进行Maven BOM项目的创建,并基于所述Maven BOM项目维护所有二方依赖模块的版本信息,以通过定义和管理二方依赖模块的版本,实现按维度进行二方库版本的控制;基于所述Maven BOM项目创建子模块Starter,并将使用子模块Starter时必须的依赖添加到Starter的具体依赖中;其中,所述子模块Starter通过parent继承所述Maven BOM项目中管理的二方库版本;基于应用场景进行所述Maven BOM项目或子模块Starter的选择,以基于所述Maven BOM项目或子模块Starter引入需要的依赖。本发明能够为Java企业级项目的二方库依赖管理提供了完整可行的解决方案,其显著的技术优势和效果有助于减少项目成本、提高开发效率、增强系统质量。

    技术研发人员:刘增辉,武慧荣,李傲林,李南熹,尹相兵
    受保护的技术使用者:航信云享科技有限公司
    技术研发日:
    技术公布日:2024/4/29
    转载请注明原文地址:https://wp.8miu.com/read-81170.html

    最新回复(0)