dependencies和dependencyManagement中的dependencies区别
1.在Maven中dependencyManagement的作用对所依赖jar包进行版本管理的管理器,dependencyManagement中申明dependencies并不引入进应的Jar包,只是声明依赖。2.独立的dependencies的依赖会引入相应的Jar包3.Maven依赖工作过程:如果dependencies里的dependency自己没有声明version元素,那么maven就会倒dependencyManagement里面去找有没有对该artifactId和groupId进行过版本声明,如果有,就继承它,如果没有就会报错,告诉你必须为dependency声明一个version.如果dependencies中的dependency声明了version,那么无论dependencyManagement中有无对该jar的version声明,都以dependency里的version为准。实例应用:在父pom文件中加了dependencyManagement节点,添加了一些依赖的version信息,都没问题。但是添加 <dependency> <groupId>net.sf.ehcache</groupId> <artifactId>ehcache-core</artifactId> <version>2.3.0</version> </dependency>maven编译就会出错。报错信息如下:'dependencies.dependency.version' for net.sf.ehcache:ehcache-core:jar is missing. @ line 126, column 21在子pom文件中,该依赖如下: <dependency> <groupId>net.sf.ehcache</groupId> <artifactId>ehcache-core</artifactId> </dependency> 解决方法:在父POM中将dependency添加到dependencyMangagemetn标签中<dependencyManagement> <dependencies> <dependency> <groupId>net.sf.ehcache</groupId> <artifactId>ehcache-core</artifactId> <version>2.3.0</version> </dependency> </dependencies></dependencyManagement>
总结:
//只是对版本进行管理,不会实际引入jar
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>3.2.7</version>
</dependency>
</dependencies>
</dependencyManagement>
//会实际下载jar包
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
</dependency>
</dependencies>
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。