10 强制约束依赖的版本号

1 强制约束版本号

  • 项目结构如下,所有项目都依赖mall-common


    项目结构
  • mall-common中依赖


    com.alibaba
    fastjson
    1.2.58

  • mall-order中依赖

    com.alibaba
    fastjson
    1.1.58

  • mall-order依赖结构如下
mall-order ->
    mall-common ->
        fastjson-1.2.58

mall-order ->
    fastjson-1.1.58
  • 此时就近原则生效,mall-order.jar中只存在fastjson-1.1.58,XXX Not Found问题

2 如何强制约束版本号

  • 针对mall-common,开发一个pom包(mall-common-bom),该pom包专门用dependencyManagement来约束依赖方的各个版本号
  • 依赖方(mall-order)不直接依赖mall-common,而是依赖于mall-common-bom,此时mall-order在dependency声明fastjson依赖时,在对fastjson自定义依赖版本时,pom就会报错

3 项目使用

mall-common

    com.alibaba
    fastjson
    1.2.58

---------------------------------------------------------------------------------------------------------
mall-common-bom

    
        
            com.mall.common
            mall-common
            1.0.0-SNAPSHOT
        
        
            com.alibaba
            fastjson
            1.2.58
        
    


---------------------------------------------------------------------------------------------------------
mall-order

   
       
           com.mall.common
           mall-common-bom
           1.0.0
           pom
           import
       
   



 
    
        com.alibaba
        fastjson
        1.1.58
    

你可能感兴趣的:(10 强制约束依赖的版本号)