Maven的dependencyManagement标签理解

应用:

一般在抽象出的顶级模块或者父模块的POM中出现,整合和集中管理依赖项的版本。

父pom示例:需声明依赖版本号

    Finchley.SR1



    
        
            org.springframework.cloud
            spring-cloud-dependencies
            ${spring-cloud.version}
        
    

子pom示例:无需声明版本依赖号

    
        org.springframework.cloud
        spring-cloud-starter-netflix-eureka-server
    

好处:

子模块在开发时,统一继承父pom,这样可以统一各个项目的依赖版本,保证测试以及打包发布时的版本一致,产生同一个版本的结果;

依赖版本升级更新方便,只需要修改父pom即可;

如果某个子应用想使用单独的版本,也可以在自己的dependencies中单独声明依赖版本号即可(这块儿好像涉及到一个就近原则)。

与dependencies的区别

dependencies声明的依赖会自动引入到项目中,不管是继承的父pom中声明的,还是本身子项目声明的依赖,都会自动引入;

dependencyManagement声明的依赖,并不会引入到项目中,只有在子项目中通过dependencies显示的声明该依赖才会引入,并且version和scope都读取自父pom。但是如果子项目中也同时显示的声明了版本号,则会引入子项目中声明的jar版本。

以上。

参考:

https://blog.csdn.net/liutengteng130/article/details/46991829

你可能感兴趣的:(maven)