maven bom的作用

作为Java 开发我们经常会遇到

java.lang.NoSuchMethodError
java.lang.ClassNotFoundException

自己定义的一堆依赖会出现版本冲突,导致有些方法、类版本不对。

通常公司会有一个团队专门维护一些通用的依赖版本,将这些版本信息固定到一个pom文件里,后期bom的维护方负责版本升级,确保各个依赖之间没有版本冲突。
本质上bom还是一个普通的pom文件,BOM是(Bill of Materials Dependency)依赖列表。
一个bom例子如下



    4.0.0

    com.ydj.qd
    inf-bom
    1.0
    pom

    inf-bom
    第三方jar包统一管理

    
        UTF-8
        UTF-8
        1.8
        4.3.15.RELEASE
    
    
        

            
            
            
                com.alibaba
                druid
                1.1.12
            
            
            
                com.aliyun.mns
                aliyun-sdk-mns
                1.1.8
                jar-with-dependencies
            
            
                com.alibaba
                fastjson
                1.2.29
            

            
            
                org.apache.commons
                commons-lang3
                3.3.2
            
            
                commons-collections
                commons-collections
                3.2.2
            
            
            
                com.google.guava
                guava
                27.0.1-jre
            
        
    

业务方使用姿势


    
        
            com.ydj.qd
            inf-bom
            1.0
            pom
            import
        
        
            com.google.guava
            guava
        
    

用户只需要在dependencyManagement声明对bom的依赖,然后就可以在实际使用的地方去掉version字段就可以了, 如果需要使用不同于bom中的版本直接使用覆盖即可

你可能感兴趣的:(maven bom的作用)