1.dependencyManagement和dependencies的区别及联系
一、dependencyManagement并不实际依赖只定义版本,不会实际引入jar
二、被dependencies包裹才会去实际依赖
(1)dependencies里的dependency自己没有声明version元素,那么maven就会到dependencyManagement里面去找有没有对该artifactId和groupId进行过版本声明,如果有,就继承它,如果没有就会报错,告诉你必须为dependency声明一个version。
(2)dependencies中的dependency声明了version,那么无论dependencyManagement中有无对该jar的version声明,都以dependency里的version为准。
三、如果dependencies中对某个框架引用了,版本信息以dependencyManagement中定义的版本为改框架的最终版本。
<!-- 集中定义依赖版本号 -->
<properties>
<spring.version>4.1.3.RELEASE</spring.version>
</properties>
<!-- 只定义依赖的版本,并不实际依赖 -->
<dependencyManagement>
<dependencies>
<!-- Spring -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
</dependency>
</dependencies>