maven依赖关系中Scope的作用

Dependency Scope

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

* compile,缺省值,适用于所有阶段,会随着项目一起发布。 
* provided,类似compile,期望JDK、容器或使用者会提供这个依赖。如servlet.jar。 
* runtime,只在运行时使用,如JDBC驱动,适用运行和测试阶段。 
* test,只在测试时使用,用于编译和运行测试代码。不会随项目发布。 
* system,类似provided,需要显式提供包含依赖的jar,Maven不会在Repository中查找它。

依赖范围控制哪些依赖在哪些classpath 中可用,哪些依赖包含在一个应用中。让我们详细看一下每一种范围:

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 仓库中引用依赖)。

转自:https://my.oschina.net/boonya/blog/141276

Maven Scope取值的含义相关推荐

  1. MySQL外键约束On Delete、On Update各取值的含义

    主键.外键和索引的区别?   主键 外键 索引 定义: 唯一标识一条记录,不能有重复的,不允许为空 表的外键是另一表的主键, 外键可以有重复的, 可以是空值 主索引(由关键字PRIMARY定义的索引) ...

  2. Action 参数的取值及其含义

    Action 参数的取值及其含义 转载于:https://www.cnblogs.com/LoveFishC/archive/2012/08/18/3845726.html

  3. mysql on delete关键字_MySQL外键约束On Delete、On Update各取值的含义

    主键.外键和索引的区别? 主键 外键 索引 定义: 唯一标识一条记录,不能有重复的,不允许为空 表的外键是另一表的主键,外键可以有重复的,可以是空值 主索引(由关键字PRIMARY定义的索引),用于表 ...

  4. PyQt(Python+Qt)学习随笔:Qt Designer中部件的快捷菜单策略(contextMenuPolicy)取值及含义

    在Qt Designer中可以设置部件的快捷菜单策略,快捷菜单通过在部件上点击鼠标右键触发. 快捷菜单策略通过枚举类型Qt.ContextMenuPolicy来定义,对应枚举类型取值及含义如下: 通过 ...

  5. css中position的4个取值的含义

    css中position的4个取值的含义 一.在我们书写css代码的时候,position取值有4个,分别是: 1. Absolute:绝对定位,是相对于最近的且不是static定位的父元素来定位 2 ...

  6. 目标检测结果IOU不同取值的含义 IoU=0.50与IoU=0.50:0.95

    Average Precision (AP)和Average Recall (AR) AP是单个类别平均精确度,而mAP是所有类别的平均精确度. AP是Precision-Recall Curve曲线 ...

  7. maven scope 的作用

    一: 1.Maven中的依赖作用范围概述 Maven中使用 scope 来指定当前包的依赖范围和依赖的传递性.常见的可选值有:compile, provided, runtime, test, sys ...

  8. ICMPv6协议中各种Type的详细取值范围及其含义

    在ICMPv6中的Type字段定义中,0-127为错误消息(Error messages),而128-255为信息消息(Informational messages),其中每种Type定义一种类型及其 ...

  9. 下取整函数的含义_Excel将3.14159取值为3.15或3.1415? 两个函数为你效劳,拿走不谢...

    Hi,大家好,我是你们的朋友波波.欢迎进入波波Excel小课堂,勤奋好学的你必将有所收获. 现实工作中,Excel表格中的数值通常是以设置小数点位数来进行取值,但结果是按四舍五入进行取舍的(局限性很大 ...

最新文章

  1. window系统无限试用 JAVA IDEA不限版本
  2. 在XX公司工作第二天,维护已有代码
  3. 学生档案c语言编程,学生档案管理问题
  4. 小程序[渲染层网络层错误] failed to load image_游戏中水的渲染技术
  5. 小米路由器r3gv2/r4a Lean的OpenWrt固件
  6. pythonQQ机器人系列:使用requests实现QQ机器人聊天(0-2)
  7. Matplotlib笔记(莫烦Python)
  8. Windows10系统破解多用户同时远程登陆
  9. html的个人简历边框,怎样制作简历模板边框
  10. 诺基亚x6 云服务器,手机上面怎么玩端游?诺基亚X6通过云电脑玩DNF教程
  11. GeoServer地图开发解决方案(五):基于Silverlight技术的地图客户端实现
  12. java.time.duration_java.time.Duration
  13. 24个最新创意进度条设计,分分钟让你灵感爆表!!!
  14. 中报业绩被华夏幸福拖累,“50元”的中国平安是否值得珍惜?
  15. 去掉选中div后出现的高亮淡蓝色边框
  16. 在VS Code中开启gdb的pretty-printer功能
  17. UE风格化Day7-maya的AO烘焙和SP绘制材质
  18. 常用图标png、ico 图标下载,图片格式转换为ico
  19. 进程间通信之面包师问题
  20. Myabtis-Plus(高级查询)

热门文章

  1. mongodb 数组添加_NoSQL之MongoDB——简介
  2. H5 使用微信开放标签跳转小程序
  3. java怎么输出点,Java实现控制台输出两点间距离
  4. autotools使用
  5. 全国计算机水平考试技巧,全国计算机等级考试上机考试应试技巧
  6. python 分词 识别_python分词如何实现新词识别
  7. 神经网络与深度学习——TensorFlow2.0实战(笔记)(二)(Anaconda软件使用)
  8. 【转】01Teams的前世今生
  9. html中点击照片时放大缩小,基于jquery实现一张图片点击鼠标放大再点缩小
  10. 可以获得索引值码_搜索引擎优化最适合什么样子的工作?