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依赖,也有了一定的认识,找机会把代码补上

  • 相关阅读:
    docker 加速器配置目录
    php 超时设置笔记
    php socket通过smtp发送邮件(纯文本、HTML,多收件人,多抄送,多密送)
    fabric 安装
    centos7下使用yum安装pip
    【转】linux tar 压缩
    ASP.NET MVC 5 默认模板的JS和CSS 是怎么加载的?
    NHibernate with ASP.NET MVC 入门示例
    Ajax入门
    NHibernate入门
  • 原文地址:https://www.cnblogs.com/banmoon/p/14310353.html
Copyright © 2011-2022 走看看