Maven依赖Scope选项详解

【Maven】-- Maven Scope 详解 Scope编译(Compile)测试(Test)运行(Runtime)典型使用场景compile(默认)✅✅✅普通依赖,如 Apache Commonsprovided✅✅❌运行环境提供的库,如runtime❌✅✅运行时才需要的库,如test❌✅❌测试框架,如 JUnitsystem✅✅✅本地 jar,如商业库(不推荐)import❌❌❌仅用于。 阅读详情

转载自https://www.jianshu.com/p/fb09a49d4d1b
转载这篇文章主要是这篇是简书中的无法被收藏,且在初学Maven时有所疑问,故记录一下。

在一个maven项目中,如果存在编译需要而发布不需要的jar包,可以用scope标签,值设为provided。

如下:

<dependency>
  <groupId>javax.servlet.jsp</groupId>
  <artifactId>jsp-api</artifactId>
  <version>2.3</version>
  <scope>provided</scope>      
</dependency>

Scope的其他参数如下:

scope说明实例
compile编译时需要用到该jar包(默认)commons-logging
test编译Test时需要用到该jar包junit
runtime编译时不需要,但运行时需要用到mysql
provided编译时需要用到,但运行时由JDK或某个服务器提供servlet-api

compile:默认的scope,表示 dependency 都可以在生命周期中使用。
而且,这些dependencies 会传递到依赖的项目中。适用于所有阶段,会随着项目一起发布
provided:跟compile相似,但是表明了dependency 由JDK或者容器提供,例如Servlet AP和一些Java EE APIs。这个scope 只能作用在编译和测试时,同时没有传递性,即:child module无法引用。
runtime:表示dependency不作用在编译时,但会作用在运行和测试时,如JDBC驱动,适用运行和测试阶段,与provided相反。
test:表示dependency作用在测试时,不作用在运行时。 只在测试时使用,用于编译和运行测试代码。不会随项目发布。
system:跟provided 相似,但是在系统中要以外部JAR包的形式提供,maven不会在repository查找它。

固态变压器SST 1.1 课程整体框架与学习路径 本课程围绕固态变压器(SST)全生命周期工程化流程设计,构建"规范要求-理论基础-设计方法-仿真验证-工程落地"的闭环学习体系,完整覆盖GB/T 40429-2021标准要求。课程分为基础认知、核心设计、合规验证、工程落地和前沿拓展五大模块,采用理论讲解与工程实践深度融合的教学路径,通过规范条款拆解、仿真预验证、硬件实现、试验检测等环节,培养学员从设计到落地的完整能力。课程强调标准合规性,每个设计环节均有明确规范约束,并提供标准化工程模板,确保学习成果可直接应用于实际项目开发。 阅读详情

相关推荐

RV1106G3的AOV下的yolov5调试记录

本文介绍了基于LuckFoxPicoMax开发板的RV1106芯片调试经验,重点包括AOV(Always-On Vision)和Yolov5目标检测的实现。在硬件方面,板载1TOPS NPU、256MB内存,并更换为SPI NOR存储。软件调试涉及MK配置文件修改、设备树调整(按键唤醒和sensor配置)以及程序自启动设置。Yolov5模型优化为320*320尺寸,推理时间约45ms。系统采用VI采图与AI识别通过共享内存通信的方案,实测功耗在20-35mA范围。文章还指出了当前存在的功耗优化、ISP调试等

fzktongyong的博客 1715

maven 设置scope、optional

Maven optional关键字透彻图解 - 日拱一兵 - 博客园

allensandy的博客 469

afe模拟前端的重要性_高性能模拟前端信号链解决方案如何助力医疗超声系统发展...

1942年,奥地利TDussik使用A型超声成像系统穿透性探测颅脑,并于1949年获得头部的超声图像,此举昭示超声系统进入到医疗领域。直到如今,超声系统作为用于人体内部的无创可视化技术,被广泛用于医疗领域。最近一份报告称到2022年,中国医疗超声诊断仪器行业的市场规模预计将达到15.8亿美元,保持6%左右的年均增长率。高性能模拟信号链前端是超声设备的关键组成部分,作为高性能模拟技术主要的提供商AD...

weixin_28799111的博客 1090

Maven中scope(作用范围)详解

一篇文章彻彻底底的掌握maven当中的依赖关系,以及scope作用范围。

怪咖@的博客 2万+

Protege本体建模实战:从零构建电影知识图谱并导入Neo4j

本体建模是知识图谱构建的基石,通过类、属性、实例和约束系统描述领域知识,为数据提供可复用的语义骨架。OWL作为本体描述语言的标准,配合Protege工具可实现可视化建模,并借助推理机验证逻辑一致性,提升模型可靠性。在工程落地中,本体模型常需导入图数据库如Neo4j,以支持高效的关联查询与业务应用。本文以影视领域为背景,完整演示Protege中定义类层级、创建对象/数据属性、填充实例,以及导出OWL文件并通过Python脚本转换为Neo4j节点与关系的全过程,同时梳理命名空间、匿名节点、编码等易踩坑点,帮助读

weixin_29047545的博客 282

【ROS2】Arduino系列之机器人底盘实现

介绍ros中提供的一个已经封装了的模块: ros_arduino_bridge,该模块由下位机驱动和上位机控制两部分组成,通过该模块可以更为快捷、方便的实现自己的机器人平台

guilin 1486

maven中scope标签详解

最近在做itoo的pom优化工作,发现对于maven依赖管理中的scope标签还是有不明白的地方,所以今天就来总结一下这方面的知识,scope在maven的依赖管理中主要负责项目的部署。在优化过程中,我们把core和web中的一部分依赖,加上了scope标签,也就是说,避免了最后打包阶段把一些可以从ear中已经提供的包排除在外,去掉重复的打包过程。默认值 他表示被依赖项目需要参与当前项目的编译,还有后续的测试,运行周期也参与其中,是一个比较强的依赖。否则A依赖C,C的scope继承与B的scope。

我是一只蘑菇17的博客 610

2026基金本子新规必看!聚焦四大底层问题,利用AI辅助分别破解提升中标率

我拟申报的研究主题为【明确的研究主题或关键词组合】。选题方向也是评审专家关注的核心之一,申报前可以检索近五年领域前人中标项目,分析现有研究的空白与不足,并结合自身研究基础选择 “人无我有、人有我优” 的细分方向,如果是交叉学科选题,则要阐述不同学科的融合逻辑与创新点。“推动国家战略”、“带来行业发展”等宏观表述,有很多同仁都喜欢用这类话术开篇,但实际上宏大叙事无法替代具体的真实科学问题,明确不了研究要解决的核心痛点,更没有说明问题的现实针对性,评审看了往往抓不到研究的核心价值。

智能AI让学术科研更容易 295

Maven的scope详解

https://www.pianshen.com/article/90681857024/ https://www.liaoxuefeng.com/wiki/1252599548343744/1309301178105890 https://www.cnblogs.com/sanshisiniao/articles/12068847.html https://www.cnblogs.com/tuyang1129/p/10741558.html https://blog.youkuaiyun.com/seasonsbin

liaowenxiong的博客 3万+

Oracle EBS与SAP数据数据切换至迁移华为MetaERP分析

Oracle EBS到华为MetaERP的数据迁移可采用“表对表复制”思路,因其模块化设计下数据模型标准化、边界清晰。核心业务对象存储在结构明确的主表中,与MetaERP模型兼容度高,便于直接映射。而SAP到MetaERP的迁移则因SAP高度优化的复杂表结构(如簇表/池表)、数据分散冗余、深度依赖配置等特点,无法简单复制,必须采用基于业务对象的迁移方法,通过视图/BAPI提取数据并进行深度转换。两种迁移的本质差异源于源系统的数据模型设计理念不同。

金牌架构师 1379

Unity GameObject 核心机制深度解析:从底层结构到工程实践

从底层机制讲透 Unity GameObject:托管壳加原生芯的双层对象模型如何制造假 null 陷阱、Transform 层级与组件通信的原理、生命周期回调的确切顺序。文章同时给出 Instantiate 成本分析与对象池等高频场景的工程实践。

游戏人生 40

scope选项

Oracle 中spfile就是动态参数文件,里面设置了Oracle 的各种参数。动态就是说你可以在不关闭数据库的情况下,更改数据库参数,记录在spfile里面。更改参数的时候,有4种scope选项。scope就是范围  scope=spfile 仅仅更改spfile里面的记载,不更改内存,也就是不立即生效,而是等下次数据库启动生效。有一些参数只允许用这种方法更改 scope=memory 仅

zuixinnet的专栏 1039

鸢尾花分类预测

鸢尾花数据总用有150个样本,是一个典型的分类数据集,共有3个类别,分别是山鸢尾(Iris-setosa)、变色鸢尾(Iris-versicolor)和维吉尼亚鸢尾(Iris-virginica),每个样本的特征有4列sepal_length:萼片长度sepal_width:萼片宽度petal_length:花瓣长度petal_width:花瓣宽度这里我们定义了随机森林模型作为实例,来进行模型训练,之后我们会对其使用网格搜索找到最优的参数。

优快云 精品推荐 2191

Maven的依赖Scope详细解释

Maven 是 Java 开发中最常用的构建工具之一。它的强大之处在于提供了简洁有效的依赖管理。我们在使用 Maven 时,不仅能指定依赖库,还可以灵活地控制这些依赖在项目的不同生命周期中的可见性和使用方式。这种控制通过 **scope** 实现。理解 Maven 的依赖范围,可以帮助我们更好地优化项目的大小、提高性能,并确保在正确的环境下加载所需的依赖。

常备不懈 1960

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Maven依赖中的Scope详解

我们知道Maven的继承和Java的继承一样,是无法实现多重继承的,如果10个、20个甚至更多模块继承自同一个模块,那么按照我们之前的做法,这个父模块的dependencyManagement会包含大量的依赖。适用场景:例如, 如果我们在开发一个web 应用,在编译时我们需要依赖 servlet-api.jar,但是在运行时我们不需要该 jar 包,因为这个 jar 包已由应用服务器提供,此时我们需要使用 provided 进行范围修饰。被依赖项目需要参与到当前项目的编译,测试,打包,运行等阶段。

qq_40396818的博客 2853

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Maven scope 依赖范围详解

Maven的生命周期存在编译、测试、运行、打包这些过程,那么显然有些依赖只用于测试(test),比如 junit ; 有些依赖编译用不到,只有运行的时候才能用到( runntime ),比如 mysql 驱动包在编译期就用不到,而是在运行时用到的; 还有些依赖在编译期要用到,而运行期不需要提供(provided),因为有些容器已经提供了,比如 servlet-api 在 tomcat 中已经提供了,我们只需要的是编译期提供而已。 总结说来,在POM 4中,<dependency>中还引入了&lt

猎人在吃肉 4213

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

maven中强大的scope标签详解

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

凌大大的博客 9494

彻底搞懂Maven的依赖范围(scope)

通过例子彻底搞懂Maven的scope 依赖范围

hjji12的博客 8615

【Maven】属性scope依赖作用范围详解

Maven中使用 scope 来指定当前包的依赖范围和依赖的传递性。常见的可选值有:compile,provided,runtime,test, syste,import 等。scope 主要是用在 pom.xml 文件中的依赖定义部分

抓娃攻城师 4064

Maven依赖中的scope详解

Maven的一个哲学是惯例优于配置(Convention Over Configuration), Maven默认的依赖配置项中,scope的默认值是compile,项目中经常傻傻的分不清,直接默认了。今天梳理一下maven的scope。 scope的分类 compile 默认就是compile,什么都不配置也就是意味着compile。compile表示被依赖项目需要参与当前项目的编译,当然后续的...

锦瑟年华,逐梦之人 993

Maven 依赖中 scope 详解

前言 Maven 的哲学思想是,约定优于配置(Convention Over Configuration),Maven 依赖中 scope 的默认值是compile Scope 指定了依赖(第三方jar包)的 作用范围 作用范围包括,所在项目的测试、编译、运行、打包等生命周期 其中,编译和运行还分为 测试代码的编译和运行 非测试代码的编译和运行 scope 分类 t...

想好了就去做吧 即便失败了 至少这条路上留下了你的脚印 584

Maven - 依赖入门 依赖坐标 范围scope配置指南

本文介绍了Maven依赖管理的核心概念,重点讲解了依赖坐标的组成和依赖范围(Scope)的配置方法。主要内容包括: Maven依赖概述:解释了Maven依赖的定义、重要性及声明方式,说明其如何简化项目构建和版本管理。 依赖坐标详解:详细解析了groupId、artifactId、version、classifier和type这5个坐标元素的作用和命名规范,并提供了查找依赖坐标的实用方法。 依赖范围深入解析:系统介绍了6种标准依赖范围(compile、provided、runtime、test、system、

千淘万漉虽辛苦,吹尽狂沙始到金 2万+

Maven依赖的scope—收藏

人工智能,零基础入门!http://www.captainbed.net/inner Maven的一个哲学是惯例优于配置(Convention Over Configuration), Maven默认的依赖配置项中,scope的默认值是compile,项目中经常傻傻的分不清,直接默认了。今天梳理一下maven的scope。 scope的分类 compile 默认就是compile,什么...

code_monkey的博客 12万+

maven依赖中scope标签的详解

目录前言scope的分类1.compile2.test3.runtime4.provided5.systemscope的依赖传递ITOO实例 前言 最近在做itoo的pom优化工作,发现对于maven依赖管理中的scope标签还是有不明白的地方,所以今天就来总结一下这方面的知识,scope在maven的依赖管理中主要负责项目的部署 maven的哲学在上次技术分享的时候也提到了:约定大于配置,所以在maven中,很多内容都有默认值,scope的默认值是compile,那么scope还能有哪些选项呢? scop

IT_但丁的博客 749

maven scope 详解

Maven的scope用于控制依赖项在不同构建阶段(编译、测试、运行)的可用性和传递性。主要scope类型包括:compile(默认,全阶段可用)、provided(容器提供,不打包)、runtime(仅运行测试)、test(仅测试阶段)以及import(BOM管理)。合理使用scope能优化构建效率,避免依赖冲突,如用provided处理Servlet API,runtime管理JDBC驱动。最佳实践建议避免使用system范围,优先通过compile/provided/runtime实现精准依赖控制,同

最近学习目标:MySQL,Redis 1260

Maven scope依赖范围详解

Maven的生命周期存在编译、测试、运行这些过程,那么显然有些依赖只用于测试,比如junit;有些依赖编译用不到,只有运行的时候才能用到,比如mysql的驱动包在编译期就用不到(编译期用的是JDBC接口),而是在运行时用到的;还有些依赖,编译期要用到,而运行期不需要提供,因为有些容器已经提供了,比如servlet-api在tomcat中已经提供了,我们只需要的是编译期提供而已。总结说来,在POM 4中,<dependency>中还引入了<scope>,它主要管理依赖的...

u012882577的博客 1214
上一篇: 怎样解决启动Tomcat报错端口号被占用?
下一篇: 项目总结之项目中怎样根据关系建立表
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值