Maven学习总结(50)——Maven Dependency的 Scope 属性详解
Dependency Scope
在POM 4中,<dependency>中还引入了<scope>,它主要管理依赖的部署。目前<scope>可以使用5个值:
- compile,缺省值,适用于所有阶段,会随着项目一起发布。
- provided,类似compile,期望JDK、容器或使用者会提供这个依赖。如servlet.jar。
- runtime,只在运行时使用,如JDBC驱动,适用运行和测试阶段。
- test,只在测试时使用,用于编译和运行测试代码。不会随项目发布。
- system,类似provided,需要显式提供包含依赖的jar,Maven不会在Repository中查找它。
compile (编译范围)
compile是默认的范围;如果没有提供一个范围,那该依赖的范围就是编译范围。编译范围依赖在所有的classpath 中可用,同时它们也会被打包。
provided (已提供范围)
provided 依赖只有在当JDK 或者一个容器已提供该依赖之后才使用。例如, 如果你开发了一个web 应用,你可能在编译 classpath 中需要可用的Servlet API 来编译一个servlet,但是你不会想要在打包好的WAR 中包含这个Servlet API;这个Servlet API JAR 由你的应用服务器或者servlet 容器提供。已提供范围的依赖在编译classpath (不是运行时)可用。它们不是传递性的,也不会被打包。
runtime (运行时范围)
runtime 依赖在运行和测试系统的时候需要,但在编译的时候不需要。比如,你可能在编译的时候只需要JDBC API JAR,而只有在运行的时候才需要JDBC
驱动实现。
test (测试范围)
test范围依赖 在一般的编译和运行时都不需要,它们只有在测试编译和测试运行阶段可用。
system (系统范围)
system范围依赖与provided 类似,但是你必须显式的提供一个对于本地系统中JAR 文件的路径。这么做是为了允许基于本地对象编译,而这些对象是系统类库的一部分。这样的构件应该是一直可用的,Maven 也不会在仓库中去寻找它。如果你将一个依赖范围设置成系统范围,你必须同时提供一个 systemPath 元素。注意该范围是不推荐使用的(你应该一直尽量去从公共或定制的 Maven 仓库中引用依赖)。
Maven学习总结(50)——Maven Dependency的 Scope 属性详解相关推荐
- mysql scope runtime_Maven依赖scope属性详解-一个报错引发的问题 - 老郭种树
ApplicationEventMulticaster not initialized - call 'refresh' before multicasting events via the cont ...
- Spring scope属性详解
scope用来声明IOC容器中的对象应该处的限定场景或者说该对象的存活空间,即在IOC容器在 对象进入相应的scope之前,生成并装配这些对象,在该对象不再处于这些scope的限定之后,容器通常会销毁 ...
- Maven学习总结(60)—— Maven 作用域 Scope 属性详解
前言 scope 是 Maven 坐标的一个关键字,它主要来限制依赖的作用域.它有五种类型: compile 大部分情况下使用的引用作用域是 compile,它也是 Maven 默认的 scope 值 ...
- Maven学习总结(四)——Maven核心概念
2019独角兽企业重金招聘Python工程师标准>>> Maven学习总结(四)--Maven核心概念 一.Maven坐标 1.1.什么是坐标? 在平面几何中坐标(x,y)可以标识平 ...
- Maven学习总结(二)——Maven项目构建过程练习
2019独角兽企业重金招聘Python工程师标准>>> Maven学习总结(二)--Maven项目构建过程练习 上一篇只是简单介绍了一下maven入门的一些相关知识,这一篇主要是体验 ...
- maven中强大的scope标签详解
maven中强大的scope标签详解 本文目的 接上一篇maven的版本号version的总结及理解 当我在封装工具jar包的时候,发现有些依赖,是一定要在工具代码里使用的,比如我做的工具包里 ...
- Maven学习总结(一)——Maven入门
2019独角兽企业重金招聘Python工程师标准>>> Maven学习总结(一)--Maven入门 一.Maven的基本概念 Maven(翻译为"专家",&quo ...
- pom.xml文件中的dependency的scope属性值为test,但是Test sources root的文件里面不能使用
场景: 在idea2021版本中,创建maven,在pom.xml文件中的dependency的scope属性值为test,但是Test sources root的文件里面不能使用 问题描述 在pom ...
- 深度学习之目标检测(十一)--DETR详解
深度学习之目标检测(十一)-- DETR详解 目录 深度学习之目标检测(十一)-- DETR详解 1. 前言 2. DETR 框架 2.1 CNN Backbone 2.2 Transformer E ...
最新文章
- Libevent-网络服务器事件示例
- ORA-01109:数据库无法启动问题
- android dns解析
- linux ifconfig route ip 网络相关命令
- 全国计算机运用计算机绘图考试,计算机绘图期末考试题库
- Java和Round-Robin上的AtomicInteger
- 元素在父元素内垂直居中的思路
- java第二章_JAVA第二章知识点
- 【论文阅读】Diffusion-Convolutional Neural Networks (DCNNs) | day9、10
- python高阶函数_python_bomb----高阶函数
- 使用一个for循环将N*N的二维数组的所有值置1
- 虚拟化qemu-img的简单用法。
- paip.c++ static 变量的定义以及使用...
- EGE程序打包发布与图标修改
- ae效果英文版翻译对照表_AE表达式中英文对照表.doc
- 秒杀项目(2)集成redis
- 5.1.1 电商离线数仓(数仓需求分析、日志采集、表数据加载、json数据处理、 Datax 数据导出、Tez高仿日启动测试)
- element表格表头显示斜杠
- 百度有道谷歌api集成批量翻译器
- 网站链接被微信屏蔽禁止访问的解决办法
热门文章
- 视频服务器读取hdfs文件,基于HDFS的流媒体服务器Red5视频文件分发的研究与应用...
- java 合成mp3_java如何把文本合成音频格式(MP3)
- java servlet jsp 实例_Servlet+JSP例子
- swift python javascript_最小的Swift App
- 蚂蚁课堂-第四期-基于springcloud构建微服务电商项目_阿里巴巴29个屌炸天的开源项目,你用过几个?附编程资料!!!...
- java ajax json 乱码_java+ajax加载中文json串后出现乱码问题的解决办法
- C语言如何交换两个数(位运算)
- java大文件读,java 读大文件报错
- 是什么意思网络用语_日本网络用语是什么意思?
- go语言如何实现继承