父pom管理中,
dependencies 下引用的maven 依赖,默认被其子模块全部依赖,其子模块不用显示引用
优点:所有的子模块,不用再次引用,公用父模块的引用和版本号管理
缺点:子模块引用冗余,对于自己不需要引用的包,也会被引用过来
dependencyManagement 管理:
父pom通过dependencyManagement管理,引用相关maven依赖后,子模块需要再次引用,但是不需要设置版本号。版本号由父pom中的dependencyManagement 引用的依赖及版本号统一管理
若子模块中,想单独升级某一个依赖的版本号,则可在子模块中针对某个依赖添加版本号,此时子模块下的那个依赖的版本号会覆盖父pom对该依赖设置的版本号
优点:父pom 统一管理各个依赖的版本号,子模块可以按需要引用自己需要的依赖,灵活设置自己需要的依赖版本号或直接依赖父pom的版本号
缺点:子模块pom中要显示引用自己需要的依赖
整体建议:
对于特别公用、稳定、确定的依赖,可以用dependencies 管理
其他的场景,可以通过dependencyManagement管理
总之,考虑好两者的使用差异,组合使用最好