网站首页 > 技术教程 正文
一、scope作用域介绍
Maven的一个哲学是约定大于配置,所以在maven中,很多内容都有默认值,scope的默认值是compile。 scope元素的作用:控制 dependency(依赖)元素的使用范围。 通俗的讲,就是控制 Jar 包在哪些范围被加载和使用。这个范围包括,编译、测试、运行,并且还可以加上是否被打入包中。
二、Scope分类
Scope的作用域范围包括compile、test、provided、runtime、system、import。
1. compile
此范围为默认依赖范围,是一个比较强的依赖,适用于所有阶段。 这些dependencie(依赖)的jar,会传递到其他依赖的上层项目中。 由于运行时需要所以编译范围的依赖会被打包,会随着项目一起发布。 范围:编译、测试、运行(部署)都有效 。
2. test
表示被依赖项目仅仅参与测试相关的工作,在编译和运行时都不需要,只在编译测试代码或者运行测试代码的时候才能使用该依赖。比较典型的如junit。 由于运行时不需要所以test范围依赖不会被打包。 范围:仅测试有效
3. provided
provided依赖在编译和测试时需要,在运行时不需要。 正因为运行时无效,可以防止和tomcat下jar冲突,因为servlet api被tomcat容器提供,就不需要maven再重复引入。 由于运行时不需要所以provided范围依赖不会被打包。 范围:编译、测试有效。
4. runtime
runtime依赖在运行和测试的时候需要,但在编译的时候不需要。与compile相比,被依赖项目无需参与项目的编译。 比如:jdbc的驱动包,项目主代码的编译只需要JDK提供的JDBC接口,只有在执行测试或者运行项目的时候才需要实现上述接口的具体JDBC驱动。 由于运行时需要所以runtime范围的依赖会被打包。 范围:测试、运行有效。
5. system
system范围依赖与provided类似,但是你必须显式的提供一个位于本地系统中JAR文件的路径,需要指定systemPath磁盘路径,system依赖不推荐使用。
范围:测试、运行有效
三、总结
依赖范围由强到弱的顺序是:compile>provided>runtime>test 由于system依赖不怎么推荐使用。下面排序就不排入了,如果排序和provided并排
- 上一篇: 学术搜索大全
- 下一篇: 科普:电脑和服务器上的主机地址localhost到底有啥用?
猜你喜欢
- 2024-12-09 一篇文章让你学会第三方登录
- 2024-12-09 什么是波?
- 2024-12-09 什么是GRS?
- 2024-12-09 狙击步枪瞄准镜的划分
- 2024-12-09 电气类专业常用词汇1052个
- 2024-12-09 支持新版PubMed,这款神级插件让你的PubMed与众不同
- 2024-12-09 天天用的开发环境,你真的了解吗?
- 2024-12-09 如何正确理解产品定位与功能?
- 2024-12-09 怕电脑文件丢失!你该如何认识硬盘寿命状态?
- 2024-12-09 科普:电脑和服务器上的主机地址localhost到底有啥用?
你 发表评论:
欢迎- 05-24初学电脑的几个误区,这几个方法可能能帮助到你
- 05-2410 分钟入门计算机基础
- 05-240 基础学电脑,从哪儿开始,跟着我一步步走
- 05-24电脑怎么入门?这6条基本操作知识,帮助你快速轻松入门
- 05-24电脑基础知识,硬件故障的诊断步骤
- 05-245分钟认识电脑各个部件及作用,出现问题排查有方向
- 05-24电脑DIY装机 必备的基础知识(详细图文)
- 05-24不知道现在的学生会不会学习电脑的基本操作?
- 最近发表
- 标签列表
-
- sd分区 (65)
- raid5数据恢复 (81)
- 地址转换 (73)
- 手机存储卡根目录 (55)
- tcp端口 (74)
- project server (59)
- 双击ctrl (55)
- 鼠标 单击变双击 (67)
- debugview (59)
- 字符动画 (65)
- flushdns (57)
- ps复制快捷键 (57)
- 清除系统垃圾代码 (58)
- web服务器的架设 (67)
- 16进制转换 (69)
- xclient (55)
- ps源文件 (67)
- filezilla server (59)
- 句柄无效 (56)
- word页眉页脚设置 (59)
- ansys实例 (56)
- 6 1 3固件 (59)
- sqlserver2000挂起 (59)
- vm虚拟主机 (55)
- config (61)
本文暂时没有评论,来添加一个吧(●'◡'●)