1.maven的dependencyManagement中定义的依赖声明优先级高于传递依赖
最近在弄一个spring-boot项目的时候,发现引入的resilience4j-spring-boot2-1.7.1的间接依赖resilience4j-spring变成了1.7.0,但是resilience4j-spring-boot2-1.7.1的定义的间接依赖resilience4j-spring分明是1.7.1
由此感到非常疑惑,排查一番猜测猜测可能和dependencyManagement有关,因为我当前的项目引入和spring-cloud-dependencies的dependencyManagement的元素。而后者的有定义resilience4j的依赖声明。而查询官方文档发现,DependencyManagement定义的依赖的作用不只是,后续引入的相关依赖不用显示的指定版本号,另一个作用是其优先级会比传递依赖中定义版本的要高(即dependencyManagement定义的版本会覆盖传递依赖定义的版本)。这点要注意了。
maven官方文档描述