为什么写这篇博客?
其实本来并没有在意,只是有的同学用的还是有些凌乱,就简单聊一聊吧
dependencyManagement作用:
说白了他其实就是一个对所有依赖jar包进行依赖管理的管理器。
实际应用中,可以简单的认为它只应该出现在父工程的POM文件中,用于管理所有子工程的公共依赖版本。
重点:它只是声明依赖,但是实际不会引入,因此在子工程中,如果需要此依赖,需要进行显示声明引入,子工程中可以不指定具体版本,如果不指定版本会自下向上一直寻找,直到找到最顶层的dependencyManagement为止。如果子工程中指定了具体版本,那么以子工程声明版本为准
大概就是上述这个样子。
因此!
不要再在父工程POM文件中添加dependencies,父工程仅仅包含一个pom文件,在父pom具体引入这些依赖是要干啥呢?永远让父工程仅仅承担一个聚合管理的作用。
还有的同学在父工程中使用dependencies引入SpringBoot、SpringCloud依赖,已经错了,竟然在scope属性中使用import,maven打包时就会疯狂的报错,提示import不是scope的属性。import作为scope属性的值只能出现在dependencyManagement中声明的依赖中。
今天是周五,早点休息吧。