简述Maven中的scope标签

简介: 简述Maven中的scope标签

写在前面

在我们使用Maven的过程中,经常会遇到使用scope来规范当前依赖的使用范围和传递性,并且在这个基础上Maven也提供而来compile、provide、runtime、test、system等多种可选配置,比如下面代码所示:


<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <scope>test</scope>
</dependency>


我们经常使用的springboot的test模块,基本上都会被设置上scope等于test的标签值,接下来我们来看一下具体的介绍吧。


正文


maven提供了五种可选配置,这些配置的指定依赖范围和传递性各有不同。


首先我们先来了解一下一共有哪些依赖范围,如compile(编译)、runtime(运行时)、test(测试),三种依赖范围。


关于传递性的解释,请查看这篇文章简述Maven中的‘传递性’关键词 - 掘金 (juejin.cn)


了解了这些,下面我们就能看看这五种可选配置的区别和特征了。


scope 有效范围 依赖传递
compile all
provided compile, test
runtime runtime, test
test test
system compile, test


总结


如正文中所示,maven的scope属性其实一目了然,在项目中其实有很多的例子可以供我们参考,下面我们来看几个例子吧。


如文章开头我们刚说的test相关的jar包,这就是很典型的scope等于test的例子了。


如servlet-api相关的jar包,则会在正常的编译环境和测试环境中进行引入,生产环境就没有必要引入了,因为像tomcat这种中间件,基本上都已经引入了相关的jar包,这类的情况就不需要我们再过多的进行引入了。


相关文章
|
23天前
|
Java 测试技术 Maven
maven总结二: 常用标签及属性
maven总结二: 常用标签及属性
16 3
|
2月前
|
XML Java 数据库连接
技术笔记:Maven的pom.xml(坐标的gav、依赖的scope)
技术笔记:Maven的pom.xml(坐标的gav、依赖的scope)
42 0
|
3月前
|
Java 应用服务中间件 Maven
Maven Scope
Maven Scope
30 0
|
3月前
|
Java Maven
maven手动打包常用标签
maven手动打包常用标签
26 1
|
3月前
|
Java API Maven
maven中scope和optional区别
maven中scope和optional区别
55 1
|
9月前
|
Java 数据库连接 Maven
maven中scope值详解
maven中scope值详解
|
Dubbo JavaScript Java
Maven项目中的依赖出现版本冲突,最终发现是对Dependency Scope理解有误
本文记录一下遇到maven依赖版本冲突后的排查过程说明以及问题原因说明
91 0
|
Java fastjson 数据库连接
实战,读懂maven <scope>
实战,读懂maven <scope>
|
Java Maven
Maven:第二章:最全的Maven Pom文件标签详解
Maven:第二章:最全的Maven Pom文件标签详解
182 0
|
Java Maven
知识分享之Java——Maven的settings配置标签整理
日常我们开发时,我们会遇到各种各样的奇奇怪怪的问题(踩坑o(╯□╰)o),这个常见问题系列就是我日常遇到的一些问题的记录文章系列,这里整理汇总后分享给大家,让其还在深坑中的小伙伴有绳索能爬出来。 同时在这里也欢迎大家把自己遇到的问题留言或私信给我,我看看其能否给大家解决。
217 0
知识分享之Java——Maven的settings配置标签整理