Maven的dependencyManagement与dependencies区别

news2024/11/23 6:43:22

在这里插入图片描述
先说结论:Maven 使用dependencyManagement 元素来提供了一种管理依赖版本号的方式。

在maven多模块项目的pom文件中,有的小伙伴会发现最外层的pom文件和里面的pom文件有个地方不一样 如下图
父pom
在这里插入图片描述
子pom
在这里插入图片描述

一般来说是在maven的最外父工程pom文件里,会有一个dependencyManagement 元素,而下面的子工程里使用的是dependencies。

使用pom.xml中的dependencyManagement 元素能让所有在子项目中引用一个依赖而不用显式的列出版本号。Maven会沿着父子层次向上走,直到找到一个拥有dependencyManagement 元素的项目,然后它就会使用这个dependencyManagement元素中指定的版本号。

通俗理解是:
1、父pom的dependencyManagement引入的一些maven依赖,只是一种声明依赖并不实际引入
2、子项目中如果需要使用到这个maven依赖来作为开发,需要重新引入,只不过可以不用指定版本号,同样scope也是跟随父pom的配置而来
3、如果子项目的pom文件没有引入是不会从父项目中继承下来
4、如果子项目指定了版本号,那么子项目就会使用指定的jar版本号

这样的好处是
1、如果有多个子项目都引用同一样依赖,则可以避免在每个使用的子项目里都声明一个饭本号
2、这样当想升级或切换到另一个版本时,只需要在顶层父容器里更新,而不需要一个一个子项目的修改;
3、另外如果某个子项目需要另外的一个版本,只需要声明version就可。

就先说到这 \color{#008B8B}{ 就先说到这} 就先说到这
在下 A p o l l o \color{#008B8B}{在下Apollo} 在下Apollo
一个爱分享 J a v a 、生活的小人物, \color{#008B8B}{一个爱分享Java、生活的小人物,} 一个爱分享Java、生活的小人物,
咱们来日方长,有缘江湖再见,告辞! \color{#008B8B}{咱们来日方长,有缘江湖再见,告辞!} 咱们来日方长,有缘江湖再见,告辞!

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1606234.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

4.18学习总结

多线程补充 等待唤醒机制 现在有两条线程在运行,其中一条线程可以创造一个特殊的数据供另一条线程使用,但这个数据的创建也有要求:在同一时间只允许有一个这样的特殊数据,那么我们要怎样去完成呢?如果用普通的多线程…

云原生Kubernetes: K8S 1.29版本 部署Kuboard

目录 一、实验 1.环境 2.K8S 1.29版本 部署Kuboard (第一种方式) 3.K8S 1.29版本 部署Kuboard (第二种方式) 4.K8S 1.29版本 使用Kuboard 二、问题 1.docker如何在node节点间移动镜像 一、实验 1.环境 (1)主机 表1 主机 主机架构版本IP备注ma…

Java学习-Module的概念和使用、IDEA的常用设置及常用快捷键

Module的概念和使用 【1】在Eclipse中我们有Workspace (工作空间)和Project (工程)的概念,在IDEA中只有Project (工程)和Module (模块)的概念。 这里的对应关系为: IDEA官网说明: An Eclipse workspace is similar to a project in IntelliJ IDEA An Eclipse pr…

二刷大数据(三)- Flink1.17

目录 Flink概念与SparkStreaming区别分层API 工作流程部署模式**Local Mode****Standalone Mode****YARN Mode****Kubernetes Mode****Application Mode** 运行架构stand alone 核心概念算子链任务槽 窗口窗口**窗口的目的与作用****时间窗口(Time Windows&#xff…

ARouter之kotlin build.gradle.kts

ARouter之kotlin build.gradle.kts kotlin的配置需要用到kapt 项目的build.gradle.kts plugins {id("com.android.application") version "8.1.2" apply falseid("org.jetbrains.kotlin.android") version "1.9.0" apply falseid(&…

typecho博客的相对地址实现

typecho其中的博客地址,必须写上绝对地址,否则在迁移网址的时候会出现问题,例如页面记载异常 修改其中的 typecho\var\Widget\Options\General.php 中的165行左右, /** 站点地址 */if (!defined(__TYPECHO_SITE_URL__)) {$siteUrl new Form\Element\Text(siteUrl,null,$this-…

OpenCV从入门到精通实战(五)——dnn加载深度学习模型

从指定路径读取图像文件、利用OpenCV进行图像处理,以及使用Caffe框架进行深度学习预测的过程。 下面是程序的主要步骤和对应的实现代码总结: 1. 导入必要的工具包和模型 程序开始先导入需要的库os、numpy、cv2,同时导入utils_paths模块&…

【opencv】dnn示例-person_reid.cpp 人员识别(ReID,Re-Identification)系统

ReID(Re-Identification,即对摄像机视野外的人进行再识别) 0030_c1_f0056923.jpg 0042_c5_f0068994.jpg 0056_c8_f0017063.jpg 以上为输出结果:result文件夹下 galleryLIst.txt queryList.txt 模型下载: https://github.com/ReID-Team/ReID_e…

华为手机p70即将上市,国内手机市场或迎来新局面?

4月15日,华为官宣手机品牌全新升级,p系列品牌升级为Pura。华为P70系列手机预计将于2024年第一季度末发布,而网友也纷纷表示期待p70在拍照、性能上的全新突破。 网友们对华为P70系列的热情高涨,也印证了国内高端手机市场的潜力巨大…

吴恩达机器学习笔记:第 8 周-13 聚类(Clustering)13.1-13.2

目录 第 8 周 13、 聚类(Clustering)13.1 无监督学习:简介 第 8 周 13、 聚类(Clustering) 13.1 无监督学习:简介 在这个视频中,我将开始介绍聚类算法。这将是一个激动人心的时刻,因为这是我们学习的第一个非监督学习算法。我们…

数仓建模—数据仓库初识

数仓建模—数据仓库初识 数据仓库之父Bill Inmon在1991年出版的"Building the Data Warehouse"一书中所提出的定义被广泛接受 数据仓库(Data Warehouse)是一个面向主题的(Subject Oriented)、集成的(Integ…

SOLIDWORKS Composer如何使用3D工具实现更真实的动画效果

当我们使用SOLIDWORKS composer创建动画时,往往会涉及到产品的安装与拆解,现实生活中我们在拆卸组装产品的时候,我们往往需要一些工具的协助,比如扳手、螺丝刀等等,那么我们如何在虚拟动画中也将这一过程以逼真的形式展…

【网站项目】新生报到系统小程序

🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。🌹赠送计算机毕业设计600个选题excel文件,帮助大学选题。赠送开题报告模板&#xff…

【XR806开发板试用】XR806在U8G2上增加MQTT+JSON控制

一、前言 U8G2移植参见之前写的文章 https://aijishu.com/a/1060000000292472本次增加MQTTJSON是站在大佬的肩膀上,参见 https://aijishu.com/a/1060000000284320CJSON的使用,参见 https://blog.csdn.net/fengxinlinux/article/details/53121287 二、成…

Hive进阶(2)----HDFS写入数据流程(赋图助君理解)

HDFS写入数据流程 一、写入流程 1、 Client向NameNode发起RPC请求,来确定请求文件block所在的位置; 2、 NameNode会视情况返回文件的部分或者全部block列表,对于每个block,NameNode都会返回含有该block副本的DataNode地址&…

如何部署npm私有仓库以及在项目中如何使用

如何部署npm私有仓库以及在项目中如何使用 为什么要部署npm私有仓库? 安全性:私有仓库允许团队存放内部研发的、不宜公开发布的代码包,只对特定用户或者团队可见和可用,从而保护公司的知识产权和商业秘密。模块的复用性&#xf…

友元,const成员,static成员变量,static成员函数

友元: friend关键字: 1.友元函数: 语法: friend在类中修饰一个函数。 那么这个函数定义到全局时仍可以访问该类的私有成员的。 (定义时不需要用friend,而是需要在全局定义前,在要使用的成员的类里进行声明&#xff…

备战面试K8S

备战面试&&K8S Kubernetes关于DockerDocker的优缺点分析 WebAssemblyWebAssembly与Container比较 CtrCrictlCtr和CriCtl的区别 Pod生命周期PodConditions容器状态Pod容器组成生命周期的流程 Kubelet EFK日志采集工具的优缺点 Kubernetes 容器运行接口 Container Runti…

Tensorflow小技巧01:检测本地Tensorflow的版本

前言: 以Pycharm为例,Windwos10系统,检测本地环境的Tensorflow的版本: 1 打开Pycharm窗口 2 在窗口中输入: pythonPython 3.9.5 (tags/v3.9.5:0a7dcbd, May 3 2021, 17:27:52) [MSC v.1928 64 bit (AMD64)] on win…

ChatGPT与Python-GEE融合,遥感云大数据分析、管理与可视化

掌握Earth Engine的实际应用能力,以Python为基础,结合实例讲解平台搭建、影像数据分析、经典应用案例、本地与云端数据管理,以及云端数据论文出版级可视化等技能。 为提高教学质量,将融入ChatGPT 4、Claude Opus、Gemini、文心一…