您当前的位置: 首页 >  maven

Dongguo丶

暂无认证

  • 0浏览

    0关注

    472博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Maven传递依赖冲突的解决

Dongguo丶 发布时间:2018-04-06 17:19:09 ,浏览量:0

 一:Maven依赖传递

    假如有Maven项目A,项目B依赖A,项目C依赖B。那么我们可以说 C依赖A。也就是说,依赖的关系为:C—>B—>A。

    那么我们执行项目C时,会自动把B、A都下载导入到C项目的jar包文件夹中。

    这就是依赖的传递性。

二:依赖传递的排除

传递依赖冲突时,可以在不需要的jar的传递依赖中声明排除,从而解决冲突。  例子:


        org.apache.struts
        struts2-spring-plugin
        2.3.24
        
          
            org.springframework
            spring-beans
          
        
    

三:依赖冲突与解决

1、第一声明优先原则:  在pom.xml配置文件中,如果有两个名称相同版本不同的依赖声明,那么先写的会生效。 

所以,先声明自己要用的版本的jar包即可。 

         A—>E—>X(version 0.0.1)

         A—>F—>X(version 0.0.2)

         则在项目A的中,E、F那个在先则A依赖哪条路径的X。

2、路径近者优先: 

直接依赖优先于传递依赖,如果传递依赖的jar包版本冲突了,那么可以自己声明一个指定版本的依赖jar,即可解决冲突。

         A—>B—>C—>D—>E—>X(version 0.0.1)

         A—>F—>X(version 0.0.2)

         则A依赖于X(version 0.0.2)。

3、版本锁定原则(最常使用)  在配置文件pom.xml中先声明要使用哪个版本的相应jar包,声明后其他版本的jar包一律不依赖。解决了依赖冲突。  例子:


        4.2.4.RELEASE
        5.0.7.Final
        2.3.24
    
    
    
        
            
                org.springframework
                spring-context
                ${spring.version}
            

            
关注
打赏
1638062488
查看更多评论
0.0399s