龙空技术网

Maven scope 定义依赖范围compile、test、provided

麦冬会开花的呀 13

前言:

而今看官们对“目录test”大概比较讲究,咱们都需要学习一些“目录test”的相关资讯。那么小编同时在网上搜集了一些关于“目录test””的相关资讯,希望兄弟们能喜欢,小伙伴们一起来了解一下吧!

在 Maven 中,scope 定义了依赖的范围

通过设置坐标的依赖范围(scope),可以设置对应jar包的作用范围:编译环境(核心程序中)、测试环境(test目录下)、运行环境 (打war包)

在 Maven 中,scope 定义了依赖的范围,决定了依赖在项目构建的不同阶段如何使用。主要的依赖范围及其含义如下:

compile:默认范围。适用于编译、测试和运行阶段。

示例包:spring-corePOM 示例:

<dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>5.3.10</version><scope>compile</scope></dependency>

provided:编译和测试阶段可用,但在运行时不会被打包。

示例包:servlet-api(通常由应用服务器提供)POM 示例:

<dependency><groupId>javax.servlet</groupId><artifactId>servlet-api</artifactId><version>2.5</version><scope>provided</scope></dependency>

runtime:测试和运行阶段可用,但在编译时不可用。

示例包:JDBC 驱动POM 示例:

<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.25</version><scope>runtime</scope></dependency>

test:仅在测试阶段可用,不会参与编译和运行。

示例包:junitPOM 示例:

<dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.13.2</version><scope>test</scope></dependency>

system:类似于 provided,但需要显式地提供依赖的路径。

示例包:本地的库文件POM 示例:

<dependency><groupId>com.example</groupId><artifactId>example-lib</artifactId><version>1.0</version><scope>system</scope><systemPath>${project.basedir}/libs/example-lib-1.0.jar</systemPath></dependency>

import:仅适用于 <dependencyManagement> 中,用于导入一个包含依赖管理的 BOM(Bill of Materials)。

示例包:Spring Boot 的依赖管理POM 示例:

<dependencyManagement><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>2.5.4</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement>

不同的 scope 用法根据项目的需求进行选择,以便在不同的构建阶段正确地包含和排除依赖。

标签: #目录test