pom配置文件重要标签探究
文章目录
- dependencies标签
- dependencyManagement标签
- 两者辨析
- repositories标签
- properties标签
dependencies标签
<dependencies>标签用于指定项目的依赖项列表。这些依赖项可以是应用程序代码所需的库,也可以是Spring Boot和其他第三方库。<dependencies>标签内的依赖仅适用于当前模块<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><version>2.5.4</version></dependency><dependency><groupId>com.example</groupId><artifactId>my-library</artifactId><version>1.0.0</version></dependency> </dependencies><groupId>依赖项所属的组织或公司<artifactId>依赖项的名称<version>依赖项的版本号
dependencyManagement标签
<dependencyManagement>标签用于集中管理项目的依赖项版本**。在这个标签内的有依赖项及其版本,但不会实际将它们添加到项目的依赖项列表中**。- **
<dependencyManagement>标签中的依赖项版本会被子模块继承并应用于项目的依赖项解析。确保在整个项目中使用相同的依赖项版本。**<dependencyManagement><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>2.5.4</version><type>pom</type><scope>import</scope></dependency></dependencies> </dependencyManagement>
两者辨析
<dependencies> | <dependencyManagement> | |
|---|---|---|
| 定义位置 | 在每个模块的 pom.xml 文件中 | 在父模块的 pom.xml 文件中 |
| 功能 | 指定项目的依赖项列表,并添加到依赖项解析中 | 集中管理项目的依赖项版本,不直接添加到依赖项解析中 |
| 作用范围 | 仅适用于当前模块 | 可以被子模块继承,确保整个项目使用相同的依赖项版本 |
| 版本号 | 可以在每个依赖项中指定版本号 | 通常使用一个引用(如 Spring Boot 官方引用)来指定所有依赖项的版本号 |
| 导入方式 | 直接将依赖项添加到项目的依赖项解析中 | 使用 <scope> 为 import 的依赖项实现版本继承 |
| 优点 | 灵活,可以在每个模块中定制依赖项版本 | 统一管理依赖项版本,确保一致性 |
| 缺点 | 需要在每个模块中重复指定依赖项版本 | 无法针对不同的子模块使用不同的依赖项版本 |
-
<dependencies>标签用于在每个模块的pom.xml文件中指定依赖项列表,并直接添加到依赖项解析中。它提供了灵活性,可以在每个模块中定制依赖项版本。但需要在每个模块中重复指定依赖项版本。 -
<dependencyManagement>标签用于集中管理项目的依赖项版本,在父模块的pom.xml文件中定义。它可以被子模块继承,确保整个项目使用相同的依赖项版本。通常使用一个引用(如Spring Boot官方引用)来指定所有依赖项的版本号,并通过<scope>为import的依赖项实现版本继承。
repositories标签
<repositories>标签是用于配置项目的特殊仓库(repository)信息+指定获取项目的依赖项的地址。仓库是存储和提供依赖项的地方,例如 Maven Central Repository、JCenter等。<repositories>标签中,列出项目所需的所有仓库,并指定URL和其他相关信息。当构建项目时,构建工具(例如Maven)会根据配置的仓库信息从相应的仓库中下载所需的依赖项。
<repositories><repository><id>central</id><name>Maven Central Repository</name><url>https://repo.maven.apache.org/maven2</url></repository><repository><id>jcenter</id><name>JCenter</name><url>https://jcenter.bintray.com</url></repository>
</repositories>
- 每个仓库由以下元素组成:
<id>: 仓库唯一标识符(必须),用于在配置文件中引用该仓库。<name>: 仓库名称(非必须),用于提供对仓库的描述。<url>: 仓库URL(必须),指定从仓库获取依赖项的位置。
properties标签
<properties>标签用于定义项目属性,这些属性可以在项目的 POM 文件中被引用。这种机制允许在 POM 文件中定义一些值,在整个 POM 文件中以及子模块的 POM 文件中重复使用这些值。
<properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><java.version>11</java.version><spring.version>5.3.9</spring.version>
</properties>
- 这些属性可以在 POM 文件中的任何地方被引用,如在
<dependencies>标签中使用${java.version}来指定依赖项的版本号。
使用 <properties> 标签的优点:
- 重用性:可以在项目中的多个地方引用同一个属性,避免在多个地方重复定义相同的值。
- 易维护性:当需要修改某个值时,只需要在
<properties>标签中修改一次即可,而不需要在整个 POM 文件中查找并多次修改。
- 使用
<properties>标签,更加灵活地管理项目的属性值,避免重复定义,并简化对全局属性的维护。
相关文章:
pom配置文件重要标签探究
文章目录 dependencies标签dependencyManagement标签两者辨析repositories标签properties标签 dependencies标签 <dependencies>标签用于指定项目的依赖项列表。这些依赖项可以是应用程序代码所需的库,也可以是Spring Boot和其他第三方库。<dependencies&…...
如何在Ubuntu的Linux系统上搭建nacos集群
官方给出的集群部署架构图 集群部署说明 (nacos.io)3个或3个以上nacos节点才能构成集群当前示例中包含3个nacos节点,同时一个负载均衡器代理3个nacos,本示例中负载均衡器可使用的是nginx 准备并安装好正常运行的nginx,本示例略准备并安装好正…...
oracle中的PIVOT函数
在Oracle数据库中,PIVOT 是一个强大的功能,可以将行数据转换为列数据。这在报表和数据分析中非常有用。 基本的 PIVOT 语法如下: SELECT * FROM (SELECT <column1>, <column2>, ..., <pivot_column>, <aggregate_func…...
【经验分享】gemini-pro和gemini-pro-vision使用体验
Gemini Gemini已经对开发者开放了Gemini Pro的使用权限,目前对大家都是免费的,每分钟限制60条,至少这比起CloseAI的每个账户5刀限速1min3条要香的多,目前已于第一时间进行了体验 一句话总结,google很大方,但…...
JS冒泡排序
想必大家都多多少少了解过一点排序,让我为大家介绍一下冒泡排序吧! 假设我们现在有一个数组[2,4,3,5,1] 我们来分析一下: 1.一共需要的趟数 我们用外层for循环 5个数据我们一共需要走4躺 长度就…...
面向遥感图像的道路区域提取及优化
一、论文2017 (1)DeepRoadMapper (2)Topology Loss2018 (1)RoadTracer (2)iterative-deep-learning2019 (1)Leveraging Crowdsourced GPS Data for Road Extraction from Aerial Imagery (2)RoadNet (3)RoadTagger (4)Generative Graph Transformer (5)road_…...
mysql中NULL值
mysql中NULL值表示“没有值”,它跟空字符串""是不同的 例如,执行下面两个插入记录的语句: insert into test_table (description) values (null); insert into test_table (description) values ();执行以后,查看表的…...
[c++] 意识需要转变的一个例子,全局变量的构造函数先于main执行
最近还遇到一个例子是关于:从C转C开发需要注意的一个意识问题。本人遇到的这个问题是,带着C的意识来看C的代码,然后根据代码看,有一个全局变量的值在main函数进入之后才会更改,所以百思不得其解,这个变量怎…...
VSCode 配置自动生成头文件
相关文章 VSCode 开发C/C实用插件分享——codegeex VSCode 开发C/C实用插件分享——koroFileHeader VSCode 配置自动生成头文件 一、snippets二、配置步骤三、效果展示 一、snippets 相信大家对C、C都头文件都不陌生,都会发现每个头文件都会包括下面的这些格式&…...
【大数据】Hudi 核心知识点详解(一)
😊 如果您觉得这篇文章有用 ✔️ 的话,请给博主一个一键三连 🚀🚀🚀 吧 (点赞 🧡、关注 💛、收藏 💚)!!!您的支持 &#x…...
windows上抓包出现大包未分片以及关闭tso方法
wireshark抓包中会有大数据包(未分片包)和ip校验和不对的包,问题根因在目前很多电脑网卡支持TSO和将校验和计算到网卡上,导致抓出数据包未分片 详细文章看: https://www.cnblogs.com/charlieroro/p/11363336.html 目前很多网卡已…...
Leetcode 2454. 下一个更大元素 IV
Leetcode 2454. 下一个更大元素 IV题目 给你一个下标从 0 开始的非负整数数组 nums 。对于 nums 中每一个整数,你必须找到对应元素的 第二大 整数。如果 nums[j] 满足以下条件,那么我们称它为 nums[i] 的 第二大 整数: j >nums[j] > nu…...
浏览器全屏按键同f11效果
模拟键f11 // for IE,这里和fullScreen相同,模拟按下F11键退出全屏 let wscript new ActiveXObject(WScript.Shell) if (wscript ! null) {wscript.SendKeys({F11}) }同f11键效果生效全屏函数 //判断是否是全屏状态 var isFull Math.abs(window.scree…...
CentOS 7.9 安装 k8s(详细教程)
🍿安装步骤 🍚安装前准备事项🍚安装docker🍚删除docker🍚安装yum工具🍚设置docker镜像源🍚安装指定版本docker🍚设置开启自启🍚阿里云镜像加速 🍚准备环境&am…...
区块链的可拓展性研究【05】闪电网络
1.闪电网络:闪电网络是一种基于比特币区块链的 Layer2 扩容方案,它通过建立一个双向支付通道网络,实现了快速、低成本的小额支付。闪电网络的交易速度非常快,可以达到每秒数万笔交易,而且交易费用非常低,几…...
如何部署Portainer容器管理工具+cpolar内网穿透实现公网访问管理界面
文章目录 前言1. 部署Portainer2. 本地访问Portainer3. Linux 安装cpolar4. 配置Portainer 公网访问地址5. 公网远程访问Portainer6. 固定Portainer公网地址 前言 本文主要介绍如何本地安装Portainer并结合内网穿透工具实现任意浏览器远程访问管理界面。Portainer 是一个轻量级…...
Linux——Samba文件共享服务配置
SMB/CIFS协议 SMB协议(Server Message Block 又称Common Internet File System(CIFS)) 是由微软开发的网络传输协议,用来实现网络共享文件系统、打印机等资源。 SMB协议有多个版本和不同的兼容性。 SMBv1/CIFS: 也称为SMB1或CIFS。最初由Micr…...
自动驾驶右向辅助功能规范
目 录 Contents 目录 1. 介绍 Introduction. 8 1.1 此文档的范围和目的 Scope and Purpose of This Document 8 1.2 参考文档References. 9 1.3 文档的维护 Maintenance of the Document 10 1.4 缩略词Abbreviations. 10 1.5 文档概述Document Overview.. 11 1.6 功能…...
ASF-YOLO开源 | SSFF融合+TPE编码+CPAM注意力,精度提升!
目录 摘要 1 Introduction 2 Related work 2.1 Cell instance segmentation 2.2 Improved YOLO for instance segmentation 3 The proposed ASF-YOLO model 3.1 Overall architecture 3.2 Scale sequence feature fusion module 3.3 Triple feature encoding module …...
Mac 如何删除文件及文件夹?可以尝试使用终端进行删除
MacOS 是 Mac 电脑采用的操作系统,你知道 Mac 如何删除文件吗?除了直接将文件或者文件夹拖入废纸篓之外,我们还可以采用终端命令的办法去删除文件,本文为大家总结了 Mac 删除文件方法。 为何使用命令行删除文件 在使用 Mac 电脑…...
CTF show Web 红包题第六弹
提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框,很难让人不联想到SQL注入,但提示都说了不是SQL注入,所以就不往这方面想了 先查看一下网页源码,发现一段JavaScript代码,有一个关键类ctfs…...
黑马Mybatis
Mybatis 表现层:页面展示 业务层:逻辑处理 持久层:持久数据化保存 在这里插入图片描述 Mybatis快速入门 
IGP(Interior Gateway Protocol,内部网关协议) 是一种用于在一个自治系统(AS)内部传递路由信息的路由协议,主要用于在一个组织或机构的内部网络中决定数据包的最佳路径。与用于自治系统之间通信的 EGP&…...
学校招生小程序源码介绍
基于ThinkPHPFastAdminUniApp开发的学校招生小程序源码,专为学校招生场景量身打造,功能实用且操作便捷。 从技术架构来看,ThinkPHP提供稳定可靠的后台服务,FastAdmin加速开发流程,UniApp则保障小程序在多端有良好的兼…...
前端开发面试题总结-JavaScript篇(一)
文章目录 JavaScript高频问答一、作用域与闭包1.什么是闭包(Closure)?闭包有什么应用场景和潜在问题?2.解释 JavaScript 的作用域链(Scope Chain) 二、原型与继承3.原型链是什么?如何实现继承&a…...
论文笔记——相干体技术在裂缝预测中的应用研究
目录 相关地震知识补充地震数据的认识地震几何属性 相干体算法定义基本原理第一代相干体技术:基于互相关的相干体技术(Correlation)第二代相干体技术:基于相似的相干体技术(Semblance)基于多道相似的相干体…...
面向无人机海岸带生态系统监测的语义分割基准数据集
描述:海岸带生态系统的监测是维护生态平衡和可持续发展的重要任务。语义分割技术在遥感影像中的应用为海岸带生态系统的精准监测提供了有效手段。然而,目前该领域仍面临一个挑战,即缺乏公开的专门面向海岸带生态系统的语义分割基准数据集。受…...
排序算法总结(C++)
目录 一、稳定性二、排序算法选择、冒泡、插入排序归并排序随机快速排序堆排序基数排序计数排序 三、总结 一、稳定性 排序算法的稳定性是指:同样大小的样本 **(同样大小的数据)**在排序之后不会改变原始的相对次序。 稳定性对基础类型对象…...
Razor编程中@Html的方法使用大全
文章目录 1. 基础HTML辅助方法1.1 Html.ActionLink()1.2 Html.RouteLink()1.3 Html.Display() / Html.DisplayFor()1.4 Html.Editor() / Html.EditorFor()1.5 Html.Label() / Html.LabelFor()1.6 Html.TextBox() / Html.TextBoxFor() 2. 表单相关辅助方法2.1 Html.BeginForm() …...
Scrapy-Redis分布式爬虫架构的可扩展性与容错性增强:基于微服务与容器化的解决方案
在大数据时代,海量数据的采集与处理成为企业和研究机构获取信息的关键环节。Scrapy-Redis作为一种经典的分布式爬虫架构,在处理大规模数据抓取任务时展现出强大的能力。然而,随着业务规模的不断扩大和数据抓取需求的日益复杂,传统…...
