maven依赖调解

项目有以下依赖:


    com.vips.components
    vips-common-cache
    2.0


    org.apache.poi
    poi
    3.9

其中

vips-common-cache ---> vip-common-util ---> commons-codec(1.6)

poi ---> commons-codec(1.5)

使用 mvn dependency:tree 分析依赖后,发现maven实际使用的是 poi下的commons-codec(1.5)

image

再来看以下情形:


    org.apache.httpcomponents
    httpclient
    4.4.1


    org.apache.poi
    poi
    3.9

httpclient ---> commons-codec(1.9)

poi ---> commons-codec(1.5)

分析依赖后发现,maven选择了commons-codec(1.9)

maven依赖调解_第1张图片
image

结论:

maven遇到依赖冲突后,主要两种原则解决:

1.路径优先原则:如第一个例子,

vips-common-cache ---> vip-common-util ---> commons-codec(1.6)

poi ---> commons-codec(1.5)

commons-codec(1.6)路径深度是3, commons-codec(1.5)是2,所以maven选择较短路径的那个

2.声明优先原则:如第二个例子,当冲突依赖所处的路径相同,声明在前的会被引用

你可能感兴趣的:(maven依赖调解)