一句话先说结论

子pom指定parent后会把parent的依赖全部继承下来,即使子pom可能不需要。parent中可以用<dependencyManagement>指定一些包的版本,子pom自行指定依赖,不会被强制引入依赖。在指定依赖时可以省略包版本号,使用parent指定的版本,从而避免版本号冲突

parent的作用

先说parent。配置了parent节点,子模块的依赖(dependency)从父模块得到了继承,即使在子模块中不配置<dependencies>节点,子模块也引入了它的依赖。

dependencyManagement的作用

<dependencyManagemnt>节点中配置的依赖并不会真正的引入依赖,但是该节点却能够被子模块继承,要在子模块中真正引入依赖,需要将依赖配置在<dependencies>节点下,而这种方式配置的依赖可以省略<version>节点,使用的<version>即是在<dependencyManagement>节点中配置的相应<version>