Dependency Scope

在POM 4中,<dependency>中还引入了<scope>,它主要管理依赖的部署。目前<scope>可以使用5个值:

  1. compile,缺省值,适用于所有阶段,会随着项目一起发布。
  2. provided,类似compile,期望JDK、容器或使用者会提供这个依赖。如servlet.jar。
  3. runtime,只在运行时使用,如JDBC驱动,适用运行和测试阶段。
  4. test,只在测试时使用,用于编译和运行测试代码。不会随项目发布。
  5. 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 属性详解相关推荐

  1. mysql scope runtime_Maven依赖scope属性详解-一个报错引发的问题 - 老郭种树

    ApplicationEventMulticaster not initialized - call 'refresh' before multicasting events via the cont ...

  2. Spring scope属性详解

    scope用来声明IOC容器中的对象应该处的限定场景或者说该对象的存活空间,即在IOC容器在 对象进入相应的scope之前,生成并装配这些对象,在该对象不再处于这些scope的限定之后,容器通常会销毁 ...

  3. Maven学习总结(60)—— Maven 作用域 Scope 属性详解

    前言 scope 是 Maven 坐标的一个关键字,它主要来限制依赖的作用域.它有五种类型: compile 大部分情况下使用的引用作用域是 compile,它也是 Maven 默认的 scope 值 ...

  4. Maven学习总结(四)——Maven核心概念

    2019独角兽企业重金招聘Python工程师标准>>> Maven学习总结(四)--Maven核心概念 一.Maven坐标 1.1.什么是坐标? 在平面几何中坐标(x,y)可以标识平 ...

  5. Maven学习总结(二)——Maven项目构建过程练习

    2019独角兽企业重金招聘Python工程师标准>>> Maven学习总结(二)--Maven项目构建过程练习 上一篇只是简单介绍了一下maven入门的一些相关知识,这一篇主要是体验 ...

  6. maven中强大的scope标签详解

    maven中强大的scope标签详解 本文目的   接上一篇maven的版本号version的总结及理解   当我在封装工具jar包的时候,发现有些依赖,是一定要在工具代码里使用的,比如我做的工具包里 ...

  7. Maven学习总结(一)——Maven入门

    2019独角兽企业重金招聘Python工程师标准>>> Maven学习总结(一)--Maven入门 一.Maven的基本概念 Maven(翻译为"专家",&quo ...

  8. pom.xml文件中的dependency的scope属性值为test,但是Test sources root的文件里面不能使用

    场景: 在idea2021版本中,创建maven,在pom.xml文件中的dependency的scope属性值为test,但是Test sources root的文件里面不能使用 问题描述 在pom ...

  9. 深度学习之目标检测(十一)--DETR详解

    深度学习之目标检测(十一)-- DETR详解 目录 深度学习之目标检测(十一)-- DETR详解 1. 前言 2. DETR 框架 2.1 CNN Backbone 2.2 Transformer E ...

最新文章

  1. Libevent-网络服务器事件示例
  2. ORA-01109:数据库无法启动问题
  3. android dns解析
  4. linux ifconfig route ip 网络相关命令
  5. 全国计算机运用计算机绘图考试,计算机绘图期末考试题库
  6. Java和Round-Robin上的AtomicInteger
  7. 元素在父元素内垂直居中的思路
  8. java第二章_JAVA第二章知识点
  9. 【论文阅读】Diffusion-Convolutional Neural Networks (DCNNs) | day9、10
  10. python高阶函数_python_bomb----高阶函数
  11. 使用一个for循环将N*N的二维数组的所有值置1
  12. 虚拟化qemu-img的简单用法。
  13. paip.c++ static 变量的定义以及使用...
  14. EGE程序打包发布与图标修改
  15. ae效果英文版翻译对照表_AE表达式中英文对照表.doc
  16. 秒杀项目(2)集成redis
  17. 5.1.1 电商离线数仓(数仓需求分析、日志采集、表数据加载、json数据处理、 Datax 数据导出、Tez高仿日启动测试)
  18. element表格表头显示斜杠
  19. 百度有道谷歌api集成批量翻译器
  20. 网站链接被微信屏蔽禁止访问的解决办法

热门文章

  1. 视频服务器读取hdfs文件,基于HDFS的流媒体服务器Red5视频文件分发的研究与应用...
  2. java 合成mp3_java如何把文本合成音频格式(MP3)
  3. java servlet jsp 实例_Servlet+JSP例子
  4. swift python javascript_最小的Swift App
  5. 蚂蚁课堂-第四期-基于springcloud构建微服务电商项目_阿里巴巴29个屌炸天的开源项目,你用过几个?附编程资料!!!...
  6. java ajax json 乱码_java+ajax加载中文json串后出现乱码问题的解决办法
  7. C语言如何交换两个数(位运算)
  8. java大文件读,java 读大文件报错
  9. 是什么意思网络用语_日本网络用语是什么意思?
  10. go语言如何实现继承