dependenciesManagement 和dependencies 解释

maven项目中dependency和dependenciesManagement的区别

标签: maven pom dependencies dependenciesManage 依赖

2017年09月20日 21:40:33 421人阅读 评论(0) 收藏 举报

 

<dependencyManagement>    

<!--spring的核心包-->  

      <dependencies>    

            <dependency>    

                <groupId>org.springframework</groupId>    

                <artifactId>spring-core</artifactId>    

                 <version>${spring-version}</version>  

     </dependency>    

             

               <dependency>    

                <groupId>org.springframework</groupId>    

                <artifactId>spring-content</artifactId>    

                <version>${spring-version}</version>  

            </dependency>    

 </dependencies> </dependencyManagement>  

 

 

 

 

 

但是这样就行测试的时候,注解是不能正确导包的,仔细找了好久,发现并没有所要依赖的spring的jar包在里面,所以没有注解是很正常的存在了..

后来将<dependencyManagement>的标签拿掉,直接依赖的时候,就看到了eclipse中的buildworkspace在build,证明一点我们的操作是有效果的,是在执行操作的.而且刚刚报红的注解都已经好了...可算是度过了一关

 

总结:

dependencyManagement其实只是一个管理jar的作用的声明标签,是管理jar的版本的,其他他的什么作用都没有,只是定义找到该jar的三维坐标,并不是真正的去执行下载的jar的功能.

但是jar的版本声明是有两种方式的,

1,在dependencies中的依赖中如果没有声明jar的版本,就到dependenciesManagement中去找,找到就使用,没有就报错

2,在dependencies中声明jar的版本,则使用该版本,不管在dependenciesManagement中有没有声明jar的version,都以该jar的版本为主.

 

其实还有一个知识点,是比较绕人的,但是也是个大坑,

我们在项目中需要引入一个框架S的jar包,S.jar.而S框架的开发者为了实现S框架又在pom中引入H框架,如果我们在项目中也使用了H框架,那么H框架的版本是什么呢?此时就是dependenciesManagement的作用,不管怎样,在dependenciesManagement中只要有版本号的声明,就使用dependenciesManagement中的版本,就是这么简单粗暴!!!

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页