简述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包,这类的情况就不需要我们再过多的进行引入了。


相关文章
|
5天前
|
Java Maven
maven项目的pom.xml文件常用标签使用介绍
第四届人文,智慧教育与服务管理国际学术会议(HWESM 2025) 2025 4th International Conference on Humanities, Wisdom Education and Service Management
44 8
|
4月前
|
Java 测试技术 Maven
maven总结二: 常用标签及属性
maven总结二: 常用标签及属性
37 3
|
5月前
|
XML Java 数据库连接
技术笔记:Maven的pom.xml(坐标的gav、依赖的scope)
技术笔记:Maven的pom.xml(坐标的gav、依赖的scope)
168 0
|
6月前
|
Java Maven
maven手动打包常用标签
maven手动打包常用标签
38 1
|
6月前
|
Java 应用服务中间件 Maven
Maven Scope
Maven Scope
46 0
|
6月前
|
Java API Maven
maven中scope和optional区别
maven中scope和optional区别
84 1
|
Java 数据库连接 Maven
maven中scope值详解
maven中scope值详解
|
Dubbo JavaScript Java
Maven项目中的依赖出现版本冲突,最终发现是对Dependency Scope理解有误
本文记录一下遇到maven依赖版本冲突后的排查过程说明以及问题原因说明
123 0
|
Java fastjson 数据库连接
实战,读懂maven <scope>
实战,读懂maven <scope>
|
Java Maven
Maven:第二章:最全的Maven Pom文件标签详解
Maven:第二章:最全的Maven Pom文件标签详解
201 0