maven 的依赖传递

1.   首先就maven的依赖传递来说:只有<scope>compile</scope>时,才能进行依赖的传递,其他的范围没有依赖传递可言!!!


2.   当依赖级别相同时,先写哪个依赖,就用哪个依赖。

       当依赖级别不同时,本依赖就用级别层次最短的那个依赖。


3.   依赖的传递性就拿commons-logging来举一个例子吧:

                            A---->dbunit---->commons-logging1.0.4 

                            B---->dbunit---->commons-logging1.1.1

                            C---->A

                            C---->B

问题:A依赖dbunit,dbunit依赖commons-logging1.0.4 。B依赖dbunit,dbunit依赖commons-logging1.1.1,C依赖A,C依赖B,那此时C到底使用commons-logging1.0.4这个还是commons-logging1.1.1???

分析:当依赖级别相同时,先写哪个依赖,就用哪个依赖。

            如果在C的pom文件中先写C---->A的话,此时C就用commons-logging1.0.4。

            如果在C的pom文件中先写C---->B的话,此时C就用commons-logging1.1.1。



                            A---->dbunit---->commons-logging1.0.4 

                            B---->dbunit---->commons-logging1.1.1

                            C---->commons-logging1.0.0

问题:此时C所用的是哪个版本的commons-logging呢?

分析:当依赖级别不同时,本依赖就用级别层次最短的那个依赖。

           此时C就会依赖commons-logging1.0.0

                           





你可能感兴趣的:(maven 的依赖传递)