目录
2.6 import(仅用于 dependencyManagement)
Maven Scope 详解
1. 引言
Maven 是 Java 项目构建和依赖管理的标准工具。在使用 Maven 进行依赖管理时,scope
(作用范围)是一个重要的概念。Maven scope
决定了依赖项在编译、测试、运行等不同阶段的可用性。
本文将详细介绍 Maven 中的各种 scope
及其适用场景。
2. Maven 依赖范围(Scope)分类
Maven 主要提供以下几种 scope
:
2.1 compile(默认范围)
特点:
- 依赖项在编译、测试和运行阶段均可用。
- 这是 Maven 依赖的默认范围,如果未指定
scope
,则默认使用compile
。
适用场景:
- 适用于编译期必须使用的依赖,例如
javax.servlet-api
(如果是 web 应用)。
示例:
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.12.0</version>
<scope>compile</scope>
</dependency>
2.2 provided
特点:
- 依赖项在编译和测试阶段可用,但在运行时不可用。
- 适用于那些在运行时由容器或 JDK 提供的依赖。
适用场景: