Maven中的dependencyManagement 意义

1.在Maven中dependencyManagement的作用其实相当于一个对所依赖jar包进行版本管理的管理器。

2.pom.xml文件中,jar的版本判断的两种途径

1:如果dependencies里的dependency自己没有声明version元素,那么maven就

会倒dependencyManagement里面去找有没有对该artifactId和groupId进行过版本声明,如果有,就继承它,如果

没有就会报错,告诉你必须为dependency声明一个version

2:如果dependencies中的dependency声明了version,那么无论dependencyManagement中有无对该jar的version声明,都以dependency里的version为准。

3.如下

pom.xml
//只是对版本进行管理,不会实际引入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>  
时间: 2024-11-05 12:02:04

Maven中的dependencyManagement 意义的相关文章

Maven中的DependencyManagement和Dependencies

这里介绍一个在父项目中的根结点中声明dependencyManagement和dependencies的区别 dependencyManagement Maven 使用dependencyManagement 元素来提供了一种管理依赖版本号的方式.通常会在一个组织或者项目的最顶层的父POM 中看到dependencyManagement 元素.使用pom.xml 中的dependencyManagement 元素能让 所有在子项目中引用一个依赖而不用显式的列出版本号.Maven 会沿着父子层次向

Maven中&lt;dependencies&gt;节点和&lt;dependencyManagement&gt;节点的区别

1.dependencyManagement 应用场景 Maven 使用dependencyManagement 元素来提供了一种管理依赖版本号的方式,通常会在一个组织或者项目的最顶层的POM中看到dependencyManagement 元素,在pom.xml 中使用dependencyManagement 元素能让所有子项目中引用一个依赖而不用显式的列出版本号.Maven 会沿着父子层次向上走,直到找到一个拥有dependencyManagement 元素的项目,然后它就会使用在这个depe

maven中的 dependencies 和 dependencyManagement 的区别

今天我在配置 sellercenter 的接口测试环境的时候,发现一些依赖的写法不太一致: 比如有的依赖的<scope>是写在子项目中的 <dependencies> 下的<dependency> 标签中, 而有的依赖的<scope>是写在父项目中的<dependencyManagement> 中 . 我知道前一种写法是对的,而后一种写法却不知道对不对了,从网上查了下,没有找到非常确切的答案,于是自己验证了一把. 把验证过程给大家说下,大家也可以

在父项目中的根结点中声明dependencyManagement和dependencies的区别

dependencyManagement Maven 使用dependencyManagement 元素来提供了一种管理依赖版本号的方式.通常会在一个组织或者项目的最顶层的父POM 中看到dependencyManagement 元素.使用pom.xml 中的dependencyManagement 元素能让所有在子项目中引用一个依赖而不用显式的列出版本号.Maven 会沿着父子层次向上走,直到找到一个拥有dependencyManagement 元素的项目,然后它就会使用在这个dependen

maven中的继承和聚合的关系

maven中的继承和聚合的关系:两者的目的是不一样的,聚合的目的是能够快速的构建项目,继承的目的是减少重复配置.聚合:定义一个聚合模块,然后在pom文件中添加<module></module>标签,其中的内容是模块相对于当前模块的路径.那么在构建聚合模块的时候,在<module>中定义的模块也会跟着构建,不用逐个构建,因此加快了构建速度.继承:除了定义一个父模块,在父模块的pom文件中添加<module>标签,还要在子模块pom文件中添加<parent

Maven中的继承和聚合

一. 继承和聚合 1. 什么是继承? maven为了消除重复,把很多相同的配置提取出来, 放入一个父项目的pom.xml中 例如:grouptId,version等 2. 什么是聚合? 如果我们想一次构建多个项目模块,那我们就需要对多个项目模块进行聚合 <modules> <module>-</module> </modules> 3. 继承与聚合的关系 继承主要为了消除重复 聚合主要为了快速构建项目 二. 继承聚合配置 1. 聚合配置代码: <mod

Maven中通过parent项目的pom维护第三方依赖

Maven的核心就是pom.xml.如果要引入一个第三方依赖,在pom文件中加上<dependency></dependency>就可以依赖相应的jar包. 为了使不同的子项目中的相同依赖的版本保持一致,一般在parent项目的pom文件中维护相关依赖. 场景一 多个子项目依赖同一个jar包 如果分别在各个子项目的pom文件中引入其依赖,那么当依赖版本发生变化时,需要在每个子项目中分别修改版本号,有可能造成遗漏和错误. 此时就可以在parent项目的pom文件中维护相关依赖,子项目

在Maven中设置Nexus私有服务为中央工厂

在Maven中设置Nexus私有服务为中央工厂(repository) 2015-12-12 17:45 168人阅读 评论(0) 收藏 举报  分类: Maven(17)  版权声明:本文为博主原创文章,未经博主允许不得转载. nexus中的仓库列表 第一种方式: <repositories>  <repository>  <id>nexus</id>  <name>nexus Repository</name>  <url&

maven中snapshot快照库和release发布库的区别和作用

在使用maven过程中,我们在开发阶段经常性的会有很多公共库处于不稳定状态,随时需要修改并发布,可能一天就要发布一次,遇到bug时,甚至一天要发布N次.我们知道,maven的依赖管理是基于版本管理的,对于发布状态的artifact,如果版本号相同,即使我们内部的镜像服务器上的组件比本地新,maven也不会主动下载的.如果我们在开发阶段都是基于正式发布版本来做依赖管理,那么遇到这个问题,就需要升级组件的版本号,可这样就明显不符合要求和实际情况了.但是,如果是基于快照版本,那么问题就自热而然的解决了