文档章节

maven 中 dependencyManagement 元素 与 dependency 的区别

摩西
 摩西
发布于 2017/08/17 11:02
字数 427
阅读 17
收藏 0

dependencyManagement 元素 与 dependency 的区别

  • dependencyManagement
    • 作用 1

      • 与依赖传递相关,在有依赖关系的多模块项目中使用;出现在parent项目/模块中;dependencyManagement中的dependencies只表明依赖项版本的优先选择,并不影响本项目/模块的依赖项,而dependencyManagement外部的dependencies则影响本项目的依赖项(==以下面的例子说明:parent 项目依赖于group2:artifact2 构件,但是并不依赖于group1:artifact1构件; 子构件因为继承的关系自动依赖于parent所依赖的group2:artifact2==)。
      • 详细解释
        • 假设多模块项目中,parent模块的pom如下,那么表示此parent模块并不依赖于group1:artifact1构件,而仅仅是规定了:所有直接或间接继承此模块的 子构件(模块)如需依赖group1:artifact1, 子构件pom中在不指定group1:artifact1 version的情况下,会直接使用parent pom中dependencyManagement内规定的version1;除非子构件的dependencies中明确指定版本号。

          <groupId>group1</groupId>
          <artifactId>parentProjectArtifact</artifactId>
          <version>parentProjectVersion</version>
          
          <dependencyManagement>
              <dependencies>
                  <dependency>
                      <groupId>group1</groupId>
                      <artifactId>artifact1</artifactId>
                      <version>version1</version>
                  </dependency>
              </dependencies>
          </dependencyManagement>
          
          <dependencies>
              <dependency>
                      <groupId>group2</groupId>
                      <artifactId>artifact2</artifactId>
                      <version>version2</version>
              </dependency>
          </dependencies>
          
        • 子构件pom如需依赖group1:artifact1,pom可以如下

          <parent>
              <groupId>group1</groupId>
              <artifactId>parentProjectArtifact</artifactId>
              <version>parentProjectVersion</version>
          </parent>
          
          <groupId>group1</groupId>
          <artifactId>childArtifact</artifactId>
          <version>childVersion</version> 
          
          <dependencies>
              <dependency>
                  <groupId>group1</groupId>
                  <artifactId>artifact1</artifactId>
              </dependency>
          </dependencies>
          ``
          
        • 这样,继承与parent的子构件就会依赖于version1版本的group1:artifact1;如果子构件pom内显示的指定了 group1:artifact1的版本,则会覆盖parent规定的版本号。

    • 作用 2: -- <scope>import</scope>, 为其他项目提供 导入声明

      //need to be perfected

最后吐槽一下oschaina的markdown编辑器真烂!!!

© 著作权归作者所有

摩西
粉丝 0
博文 25
码字总数 7835
作品 0
程序员
私信 提问
dependencies 和 dependencyManagement 的区别

scope写在子项目中的<dependencies> 下的<dependency>中,或是写在父项目中的<dependencyManagement>中,都是可以的。 但有一点需要注意,dependencies 和 dependencyManagement 的区别在于:......

longeremmy
2013/07/18
73
0
Maven依赖管理

Maven提供dependencyManagement 元素既能让子模块继承到父模块的依赖配置,又能保证自模块依赖的使用灵活性。(有选择的继承) 可在accout-parent 中加入: <project xmlnsxmlns="http://ma...

zh119893
2014/08/28
232
0
dependencyManagement与dependencies区别

与 dependencies 标签下 dependency 的区别 1.所有声明在dependencies 里的依赖都会自动引入,并默认被所有的子项目继承 2.dependencies 即使在子项目中不写该依赖项,那么子项目仍然会从父项...

woshixin
03/08
47
0
《Maven官方文档》-Maven依赖机制简介

《Maven官方文档》-Maven依赖机制简介 原文地址 译者:Tyrian 依赖机制是Maven最为用户熟知的特性之一,同时也是Maven所擅长的领域之一。单个项目的依赖管理并不难, 但是当你面对包含数百个...

tantexian
2018/12/13
27
0
Maven中的dependencyManagement 意义

1.在Maven中dependencyManagement的作用其实相当于一个对所依赖jar包进行版本管理的管理器。 2.pom.xml文件中,jar的版本判断的两种途径 1:如果dependencies里的dependency自己没有声明ver...

mr_伍先生
2016/12/17
0
0

没有更多内容

加载失败,请刷新页面

加载更多

哪些情况下适合使用云服务器?

我们一直在说云服务器价格适中,具备弹性扩展机制,适合部署中小规模的网站或应用。那么云服务器到底适用于哪些情况呢?如果您需要经常原始计算能力,那么使用独立服务器就能满足需求,因为他...

云漫网络Ruan
今天
10
0
Java 中的 String 有没有长度限制

转载: https://juejin.im/post/5d53653f5188257315539f9a String是Java中很重要的一个数据类型,除了基本数据类型以外,String是被使用的最广泛的了,但是,关于String,其实还是有很多东西...

低至一折起
今天
23
0
OpenStack 简介和几种安装方式总结

OpenStack :是一个由NASA和Rackspace合作研发并发起的,以Apache许可证授权的自由软件和开放源代码项目。项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。OpenSta...

小海bug
昨天
11
0
DDD(五)

1、引言 之前学习了解了DDD中实体这一概念,那么接下来需要了解的就是值对象、唯一标识。值对象,值就是数字1、2、3,字符串“1”,“2”,“3”,值时对象的特征,对象是一个事物的具体描述...

MrYuZixian
昨天
9
0
解决Mac下VSCode打开zsh乱码

1.乱码问题 iTerm2终端使用Zsh,并且配置Zsh主题,该主题主题需要安装字体来支持箭头效果,在iTerm2中设置这个字体,但是VSCode里这个箭头还是显示乱码。 iTerm2展示如下: VSCode展示如下: 2...

HelloDeveloper
昨天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部