maven项目中dependency和dependenciesManagement的区别

今天是新公司的入职第8天,一周多时间了.项目经理让我自己写一个接口,接收两个参数,返回一个json数据,自己架以springmvc的框架,一个url路径访问,可以获取到一个json数据.

就是建立一个maven的war文件,导入spring所依赖的jar包,尤其是spring-context,其中封装了注解的类,不然进行@Controller注解的时候是不能导包的.本来是引用的之前的一个项目中的jar的坐标,所以基本是这样的,属性中添加的spring的版本号就不显示了..


<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包在里面,所以没有注解是很正常的存在了..

后来将<dependencyManage>的标签拿掉,直接依赖的时候,就看到了eclipse中的buildworkspace在build,证明一点我们的操作是有效果的,是在执行操作的.而且刚刚报红的注解都已经好了...可算是度过了一关,其实,后面还有九九八十一难呢,任重道远.

 

总结:

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

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

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

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

 

 

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

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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值