zoukankan      html  css  js  c++  java
  • 问题:dependencyManagement和dependencies有什么区别

    dependencyManagement和dependencies有什么区别

    一、Maven的包管理

    在maven中,dependencyManagementdependenciesdependency,这三个标签是用来管理项目依赖包的,但许多小伙伴都不清楚它们之间的区别,下面将讲解他们之间的区别,以及如何在项目中使用这些标签

    <!-- 它们之间的嵌套关系 -->
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring.cloud.version}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>
    

    二、dependencyManagement标签

    在如今的Maven项目中,工程往往呈现出父子模块工程,以模块化工程进行开发部署。一个优秀的工程,它的包管理一定是有清晰的条目的,所以如何统一的管理包的内容和版本成为了重中之重。

    dependencyManagement标签只是声明依赖,这个标签下引入的所有依赖包,都不会引入至项目。正如此标签英文字面上的意思,此标签常常出现在父工程,作为一个管理依赖包的管理者。

    <dependencyManagement>
        <dependencies>
            <!-- 如果最外层是dependencyManagement,那么此处的所有包都不会引入 -->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring.cloud.version}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>
    

    三、dependencies标签

    此标签是用来真正导入依赖包的,在此标签设置的dependency都会真正的导入至工程,所以此标签常用于子工程,引入依赖包进行开发编码。

    如果父工程使用了dependencyManagement标签,子工程在引入依赖时,可以省去groupIdversion标签,这将默认会和父工程的一致

    如果子工程想使用另一个版本,则将version写上,子工程这边会导入对应的依赖包

    如果父工程没有使用dependencyManagement,子工程会导入父工程dependencies下的依赖

    <dependencies>
        <!-- 如果外层的是dependencies,那么此处的包都将会被引入 -->
        <!-- 如果父工程使用了dependencyManagement,那么此处可以省略groupId和version -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>${spring.cloud.version}</version>
        </dependency>
    </dependencies>
    

    四、待完善

    分清楚区别后,如何去清晰有效的管理Maven依赖,也有了一定的认识,找机会把代码补上

  • 相关阅读:
    20201015-3 每周例行报告
    20201008-1 每周例行报告
    20200924-1 每周例行报告
    20200924-3 单元测试,结对
    刷题-Leetcode-120. 三角形最小路径和
    刷题-Leetcode-1025. 除数博弈
    刷题-Leetcode-217. 存在重复元素
    刷题-Leetcode-24.两两交换链表中的节点
    刷题-AcWing-104. 货仓选址
    ARP报文抓包解析实验报告
  • 原文地址:https://www.cnblogs.com/banmoon/p/14310353.html
Copyright © 2011-2022 走看看