maven dependencyManagement
1.简介:
本文介绍maven的dependencyManagement的用法。
2.使用场景:
dependencyManagement只声明依赖,但不引入依赖。一般定义在父pom中,这样子pom项目引入依赖时,不必指定版本号。比如Spring Boot就使用了dependencyManagement,它对里面的包进行了与Spring Boot对应版本的兼容性测试。
如果你想在子pom中使用包的其它版本,在子pom中指定version即可,这样就会使用子pom的version。
3.dependencyManagement与dependencies区别:
(1)dependencies 即使在子项目中不写该依赖项,那么子项目仍然会从父项目中继承该依赖项(全部继承)
(2)dependencyManagement里只是声明依赖,并不实现引入。
(3)因此子项目需要显示的声明需要用的依赖。如果不在子项目中声明依赖,是不会从父项目中继承下来的;只有在子项目中写了该依赖项,并且没有指定具体版本,才会从父项目中继承该项,并且version和scope都读取自父pom;另外如果子项目中指定了版本号,那么会使用子项目中指定的jar版本。
4.用法:
父pom
<dependencyManagement> <dependencies> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.44</version> </dependency> </dependencies> </dependencyManagement>
子pom
<dependencies> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> </dependencies>