zoukankan      html  css  js  c++  java
  • Maven中dependencyManagement作用说明

    https://blog.csdn.net/helllochun/article/details/81564921

    在Maven多模块的时候,管理依赖关系是非常重要的,各种依赖包冲突,查询问题起来非常复杂,于是就用到了<dependencyManagement>,

    示例说明,

    在父模块中:

    1.  
      <dependencyManagement>
    2.  
      <dependencies>
    3.  
      <dependency>
    4.  
      <groupId>mysql</groupId>
    5.  
      <artifactId>mysql-connector-java</artifactId>
    6.  
      <version>5.1.44</version>
    7.  
      </dependency>
    8.  
       
    9.  
      </dependencies>
    10.  
      </dependencyManagement>
     

    那么在子模块中只需要<groupId>和<artifactId>即可,如:

    1.  
      <dependencies>
    2.  
      <dependency>
    3.  
      <groupId>mysql</groupId>
    4.  
      <artifactId>mysql-connector-java</artifactId>
    5.  
      </dependency>
    6.  
      </dependencies>


    说明:

    使用dependencyManagement可以统一管理项目的版本号,确保应用的各个项目的依赖和版本一致,不用每个模块项目都弄一个版本号,不利于管理,当需要变更版本号的时候只需要在父类容器里更新,不需要任何一个子项目的修改;如果某个子项目需要另外一个特殊的版本号时,只需要在自己的模块dependencies中声明一个版本号即可。子类就会使用子类声明的版本号,不继承于父类版本号。

    与dependencies区别:

    1)Dependencies相对于dependencyManagement,所有生命在dependencies里的依赖都会自动引入,并默认被所有的子项目继承。
    2)dependencyManagement里只是声明依赖,并不自动实现引入,因此子项目需要显示的声明需要用的依赖。如果不在子项目中声明依赖,是不会从父项目中继承下来的;只有在子项目中写了该依赖项,并且没有指定具体版本,才会从父项目中继承该项,并且version和scope都读取自父pom;另外如果子项目中指定了版本号,那么会使用子项目中指定的jar版本。

  • 相关阅读:
    在单机Hadoop上面增加Slave
    两台机器添加信任关系
    JS Scoping and Hoisting
    SCSS(SASS、CSS)学习
    程序的内存情况
    delete-node-in-a-bst
    serialize-and-deserialize-bst
    Linux Shell脚本编程--curl命令详解
    iOS文件保存策略
    浅谈spring——spring MVC(十一)
  • 原文地址:https://www.cnblogs.com/a1304908180/p/11344532.html
Copyright © 2011-2022 走看看