dependency功能大幅度的简化了对第三方库的管理。若是须要将某个库升级到最新版本,只须要更改一下版本号。java
先看定义tomcat
可传递 若是A依赖B, B依赖C, 那么A也将依赖Cbash
不可传递 A依赖B, B依赖C, 可是A不依赖Cmaven
第三方库,或者本身编写的java库,并非每一个功能都是彻底重写一遍,仍是有可能调用其它的一些开源库。这时就涉及到了依赖的传递性,它跟scope有关,见一下节。ide
查看项目的依赖关系, 可使用命令测试
mvn dependency:tree
限定在哪些状况下使用这个依赖库。spa
scope有五个值:插件
若是嫌麻烦,能够不指定scope, 默认使用compile, 可是会致使生成的目标文件包含没必要要的库。code
另外, 部分插件可使用scope过滤某些依赖。xml
能够将dependency的详细信息,包含version, scope定义在parent的pom.xml的dependencyManagement中, 而child的dependency只须要指定groupId和artifactId。此时version和scope将继承parent中的dependencyManagement对应的依赖项的值。至关于,由parent定义,而后由child引用。