查看项目的依赖树命令: mvn dependency:tree
如果只看某个依赖从哪儿来的 mvn dependency:tree -Dincludes=org.springframework:spring-core
-Dincludes 支持 groupId:artifactId:version 的格式,也可以只写一部分,比如 -Dincludes=*:jackson*。
<dependencyManagement> 和 <dependencies>区别
<dependencies> 是真正引入 jar 包,<dependencyManagement> 只是"预先定好版本号",本身不引入任何依赖。
maven中的pom文件里有<dependencyManagement>,这个只管理版本,并不直接引入jar包,它通常出现在父 POM 里,作用是统一管理整个项目(含子模块)的依赖版本。写在里面的依赖不会被下载、不会进 classpath ,只是给后面的 <dependencies> 提供默认版本号。
而直接写在 <project> 下的 <dependencies>,Maven 会真的把这个依赖加到 classpath 里。如果没写 <version>,Maven 会去别处找(比如父 POM 的 dependencyManagement,或者自己的 dependencyManagement)