• springboot~封装依赖引用包jar还是pom,哪种更规范


    将多个第三方包封装成一个项目后,如果你的目的是让其他开发人员可以直接引用这些依赖,一般来说有两种常见的方式:

    1. 打成JAR包:将封装好的项目编译打包成JAR文件,其他开发人员可以将这个JAR文件添加到他们的项目中,并在项目的构建工具(比如Maven)中配置该JAR作为依赖。这样做的好处是简单直接,其他开发人员只需引入JAR包即可使用你封装的功能。

    2. 打成POM包:将封装好的项目发布到仓库中,并提供一个POM文件,其他开发人员可以通过在他们的项目中引入这个POM文件来获取你封装的依赖。这种方式更符合Maven的依赖管理机制,能够更好地管理和控制依赖版本、传递性依赖等。

    综合考虑,如果你的封装项目只包含依赖的JAR文件,并没有其他需要特别配置的内容,那么直接打成JAR包可能更为简单;如果你希望提供更加灵活和规范的依赖管理方式,可以考虑打成POM包并发布到仓库中。

    一,二,三方包

    在软件开发中,通常我们将依赖的包分为三方包(Third-party package)、二方包(Second-party package)和一方包(First-party package)。

    • 一方包(First-party package):指的是由自己或者所在团队开发的包,也可以理解为自己项目内部的代码和库。

    • 二方包(Second-party package):通常指的是公司内部共享的、被多个团队或项目使用的包,也可以称为内部共享库。这些包不是公开发布到外部仓库的,而是在组织内部进行管理和分享。

    • 三方包(Third-party package):指的是外部开发者或组织开发并发布的可供公开访问和使用的包,比如常见的Maven中央仓库、JCenter等。开发人员可以通过引入这些第三方包来实现功能扩展或依赖管理。

    根据以上定义,如果你封装的项目中包含的是第三方包(即外部开发者或组织开发的包),那么你可以选择将其打成JAR包或POM包提供给其他开发人员使用;如果封装的是公司内部共享的包(二方包),则可以考虑将其作为内部库进行管理和分享。

    希望以上解释对你有所帮助,如果还有其他问题,请随时告诉我!

    pom更规范

    当我们希望将hutool,lombok,jax-rs等包,如果不希望其它开发人员再引用这些包,而通过一个二方包引用它们,可以将这些三方包写到pom里,例如

    然后,开发人员在自己项目中,可以直接通过type为pom的形式,引用它们,这样作的好处就是,二方依赖包,只负责引用相同依赖,不与代码耦合,例如:

     
          com.lind
          test-bom
          1.0.0
          pom
      
    
    

    如果你要使用的二方包里的三方包,只是某些需要,也可以在dependencyManagement中进行导入,通过按需进行真实的引用即可,这时再引用时,则不需要标识version属性了,例如org.springframework.bootspring-boot-dependencies就是做这事的,帮助spring管理相关依赖包的版本。

    • pom二方包项目
    
    
        4.0.0
        com.lind
        test-bom
        1.0.0
       pom
        
            8
            8
            UTF-8
        
        
            
                
                
                    org.jboss.resteasy
                    resteasy-jaxrs
                    4.0.0.Beta5
                
                
                    cn.hutool
                    hutool-all
                    5.8.27
                
                
                    org.projectlombok
                    lombok
                    1.18.32
                
            
        
    
        
            
            
                org.jboss.resteasy
                resteasy-jaxrs
            
            
                cn.hutool
                hutool-all
            
            
                org.projectlombok
                lombok
            
        
    
    

    开发人员在真实项目中,按需引用

        
            
                
                
                    org.springframework.boot
                    spring-boot-dependencies
                    ${spring-boot-dependencies.version}
                    pom
                    import
                
                
                
                    com.lind
                    test-bom
                    1.0.0
                    pom
                    import
                
            
        
      
            
                org.springframework.boot
                spring-boot-starter-web
            
            
                cn.hutool
                hutool-all
            
        
    

    引用后,如图所示,只有两个包在依赖列表中,做到了按需引用

  • 相关阅读:
    8255 boot介绍及bring up实战分享
    爆破shadow文件密码脚本(完成版)
    单片机中利用SHT11实现温湿度实验
    边端小场景音视频流分发架构
    爬虫一般采用什么代理IP,Python爬虫代理IP使用方法详解
    Coinbase Ventures团队亲述CV简史及投资版图
    一步一步认知机器学习
    06 【nodejs内置模块(中)】
    【DesignMode】建造者模式(Builder model)
    CSS技巧专栏:一日一例 19 -纯CSS实现超酷的水晶按钮特效
  • 原文地址:https://www.cnblogs.com/lori/p/18218044