【Maven】<scope>provided</scope>

在Maven中,“provided”是一个常用的依赖范围,它表示某个依赖项在编译和测试阶段是必需的,但在运行时则由外部环境提供,不需要包含在最终的项目包中。下面是对Maven scope “provided”的详细解释:

  1. 编译和测试阶段可用:当一个依赖项的scope被设置为“provided”时,这意味着在编译项目代码和执行测试时,这个依赖项是可用的。这意味着你可以在代码中自由地使用这个依赖提供的类和方法。
  2. 运行时不包括:尽管在编译和测试阶段这个依赖项是可用的,但在打包最终的项目包(如WAR或JAR)时,它不会被包含在其中。这是因为通常“provided”依赖由运行时环境(如应用服务器或JDK)提供。
  3. 与容器集成:在许多情况下,“provided”范围的依赖项是由应用运行的容器(如Web服务器或应用服务器)提供的。这意味着当应用程序部署到容器中时,这些依赖项将由容器自动提供,而不需要在应用程序的部署包中包含它们。
  4. 特定用途的依赖项:一些工具和库,如Lombok,通常被设置为“provided”范围,因为它们主要用于编译时提供功能(如自动生成代码),而在运行时则不再需要。
  5. 与“compile”范围的差异:“provided”范围与“compile”范围的主要区别在于运行时行为。当一个依赖项的scope被设置为“compile”时,它将在编译和运行时都可用,并包含在最终的项目包中。而“provided”范围的依赖项仅在编译和测试阶段需要,运行时不包括。

 <scope> 被设置为 provided 是因为它主要是一个编译时工具,用来生成样板代码,如 getter、setter 方法等。一旦代码被编译,Lombok 的工作就完成了,运行时不再需要它。因此,在打包应用时,不需要将其包含在其中,因为它在运行时不是必需的。这就是为什么通常将其 scope 设置为 provided。

在运行时勾选↓↓↓↓↓↓

类似的,还有其他几种依赖范围:

  1. compile(默认):这是默认的依赖范围,表示该依赖在编译、运行时都可用,并且会被包含在项目的最终包中。
  2. runtime:与“compile”范围类似,但在运行时可用,但不会在编译时包含依赖。这意味着编译时可以使用该依赖提供的类和方法,但在运行时需要确保该依赖可用。
  3. test:仅在测试阶段可用,用于包含测试所需的依赖。这些依赖项不会包含在最终的项目包中。
  4. system:与“provided”范围类似,表示该依赖在编译和测试阶段是必需的,但在运行时需要由外部系统提供。与“provided”不同的是,“system”范围的依赖项需要显式指定系统的路径。
  5. optional:当一个依赖项的scope被设置为“optional”时,表示该依赖不是必需的,可以在使用时忽略。这对于那些可选的组件或与其他依赖无关的组件非常有用。

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

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

相关文章

帆软FineBi V6版本经验总结

帆软FineBi V6版本经验总结 BI分析出现背景 ​ 现在是一个大数据的时代&#xff0c;每时每刻都有海量的明细数据出现。这时大数据时代用户思维是&#xff1a;1、数据的爆炸式增长&#xff0c;人们比起明细数据&#xff0c;更在意样本的整体特征、相互关系。2、基于明细的“小…

PyTorch中的 Dataset、DataLoader 和 enumerate()

PyTorch&#xff1a;关于Dataset&#xff0c;DataLoader 和 enumerate() 本博文主要参考了 Pytorch中DataLoader的使用方法详解 和 pytorch&#xff1a;关于enumerate&#xff0c;Dataset和Dataloader 两篇文章进行总结和归纳。 DataLoader 隶属 PyTorch 中 torch.utils.data…

数据结构之树 --- 二叉树

目录 定义二叉树的结构体 二叉树的遍历 递归遍历 非递归遍历 链式二叉树的实现 二叉树的功能接口 先序遍历创建二叉树 后序遍历销毁二叉树 先序遍历查找树中值为x的节点 层序遍历 上篇我们对二叉树的顺序存储堆进行了讲述&#xff0c;本文我们来看链式二叉树。 定…

SpringCloud(H版alibaba)框架开发教程之nacos做配置中心——附源码(2)

上篇主要讲了使用eureka&#xff0c;zk&#xff0c;nacos当注册中心 这篇内容是nacos配置中心 代码改动部分mysql驱动更新到8.0&#xff0c;数据库版本升级到了8.0&#xff0c;nacos版本更新到了2.x nacos2.x链接 链接&#xff1a;https://pan.baidu.com/s/11nObzgTjWisAfOp…

探秘交互设计:深入了解五大核心维度!

交互式设计是用户体验&#xff08;UX&#xff09;设计的重要组成部分。本文将解释什么是交互设计&#xff0c;并分享一些有用的交互设计模型&#xff0c;并简要描述交互设计师通常做什么。 如何解释交互设计 交互式设计可以用一个简单的术语来理解&#xff1a;它是用户和产品…

探索深度学习在自然语言处理中的应用

摘要&#xff1a; 随着人工智能技术的不断发展&#xff0c;深度学习在自然语言处理领域的应用越来越广泛。本文将探讨深度学习在自然语言处理中的各种应用&#xff0c;包括文本分类、情感分析、机器翻译等&#xff0c;并分析其优缺点。 一、引言 自然语言处理&#xff08;NLP…

借贷协议 Tonka Finance:铭文资产流动性的新破局者

“Tonka Finance 是铭文赛道中首个借贷协议&#xff0c;它正在为铭文资产赋予捕获流动性的能力&#xff0c;并为其构建全新的金融场景。” 在 2023 年的 1 月&#xff0c;比特币 Ordinals 协议被推出后&#xff0c;包括 BRC20&#xff0c;Ordinals 等在内的系列铭文资产在包括比…

nginx源码分析-3

这一章内容讲述nginx中的事件是如何一步步添加到epoll实例中的。 在初始化http连接的函数ngx_http_init_connection中&#xff0c;nginx为http连接初始化了处理请求的回调函数&#xff0c;之后调用ngx_handle_read_event函数对可读数据进行处理。这里只为连接设置read而没有设…

Ubuntu22.04 安装教程

系统下载 Ubuntu官网下载 清华源镜像 安装流程 1. 选择安装语言 2. 选择是否在安装时更新 为了系统安装速度一般选择安装时不更新&#xff0c;安装后自行更新 3. 选择系统语言和键盘布局 4. 选择安装模式 5. 配置网络信息 6. 设置静态IP 7. 配置代理信息 8. 配置Ubuntu镜像…

非常好用的ocr图片文字识别技术,识别图片中的文字

目录 一.配置环境 二.应用 2.1常见图片识别 2.2排版简单的印刷体截图图片识别 2.3竖排文字识别 2.4英文识别 2.5繁体中文识别 2.6单行文字的图片识别 三.参考 一.配置环境 pip3 install cnocr -i https://pypi.tuna.tsinghua.edu.cn/simple pip3 install onnxruntime…

在电脑上免费分区的 5 个有效磁盘分区软件工具

磁盘分区可能是一个脆弱而复杂的过程&#xff0c;磁盘崩溃或用户设备受到病毒攻击的风险很高。因此&#xff0c;它们很难由用户单独或手动管理。本文详细介绍了可以帮助简化磁盘分区过程的不同软件工具、它们的功能和优点。那么让我们开始吧。 什么是磁盘分区工具&#xff1f; …

在STM32中集成TSL2561光强传感器的开发和调试

在STM32中集成TSL2561光强传感器的开发和调试是一个常见的应用场景。TSL2561是一款数字光传感器&#xff0c;能够测量可见光和红外光的光强&#xff0c;并通过I2C接口将数据传输给微控制器。下面将为您介绍在STM32中集成TSL2561传感器的开发步骤&#xff0c;并附上相应的代码示…

Web常用的编码和解码技术

文章目录 一、URI的编码与解码1.1 URI介绍1.2 什么是encodeURI1.3 什么是encodeURIComponent1.4 应用场景1.5 URI解码1.6 扩展&#xff1a;内置对象URL 二、字符串的Base64编码与解码2.1 ASCII字符编解码2.2 非ASCII字符编解码 一、URI的编码与解码 1.1 URI介绍 URI指的是统一…

【音视频 ffmpeg 学习】 RTMP推流 mp4文件

1.RTMP(实时消息传输协议)是Adobe 公司开发的一个基于TCP的应用层协议。 2.RTMP协议中基本的数据单元称为消息&#xff08;Message&#xff09;。 3.当RTMP协议在互联网中传输数据的时候&#xff0c;消息会被拆分成更小的单元&#xff0c;称为消息块&#xff08;Chunk&#xff…

Linux系统下隧道代理HTTP

在Linux系统下配置隧道代理HTTP是一个涉及网络技术的话题&#xff0c;主要目的是在客户端和服务器之间建立一个安全的通信通道。下面将详细解释如何进行配置。 一、了解基本概念 在开始之前&#xff0c;需要了解几个关键概念&#xff1a;代理服务器、隧道代理和HTTP协议。代理…

VsCode的介绍和入门详细讲解

VS Code&#xff08;Visual Studio Code&#xff09;是由 Microsoft 开发的一款轻量级开源编辑器&#xff0c;支持多种语言和框架的编写、调试和测试。它拥有丰富的扩展生态系统&#xff0c;可以满足不同开发者的需求。 下面是 VS Code 的入门详细讲解&#xff1a; 下载和安装…

使用Python绘制各种图表

1、折线图&#xff08;Line Chart&#xff09; import matplotlib.pyplot as plt # 数据 x [1, 2, 3, 4, 5] y [2, 4, 1, 3, 7] # 绘制折线图 plt.plot(x, y) plt.title(折线图示例) plt.xlabel(X轴) plt.ylabel(Y轴) plt.show() 2、柱状图&#xff08;Bar…

算法专题四:前缀和

前缀和 一.一维前缀和(模板)&#xff1a;1.思路一&#xff1a;暴力解法2.思路二&#xff1a;前缀和思路 二. 二维前缀和(模板)&#xff1a;1.思路一&#xff1a;构造前缀和数组 三.寻找数组的中心下标&#xff1a;1.思路一&#xff1a;前缀和 四.除自身以外数组的乘积&#xff…

3、Git分支操作与团队协作

Git分支操作 1.什么是分支2. 分支的好处3. 分支的操作3.1 查看分支3.2 创建分支3.3 切换分支3.4 修改分支3.5 合并分支3.6 产生和解决冲突 4. 创建分支和切换分支图解5. Git团队协作机制团队内协作跨团队协作 均在git bash中进行操作。事先建好本地工作库 1.什么是分支 在版本…

GLTF 编辑器实现逼真3D动物毛发效果

在线工具推荐&#xff1a; 3D数字孪生场景编辑器 - GLTF/GLB材质纹理编辑器 - 3D模型在线转换 - Three.js AI自动纹理开发包 - YOLO 虚幻合成数据生成器 - 三维模型预览图生成器 - 3D模型语义搜索引擎 要实现逼真的3D动物毛发效果&#xff0c;可以采用以下技术和方法&…