常见的Maven scope值含义及使用场景

1.常见的Maven scope值

常见的Maven scope值

含义

使用场景

举例

编译

测试

运行

compile(默认)

适用于编译期间需要的依赖项(例如,项目的主要库)

<dependency>

<groupId>org.apache.commons</groupId>

<artifactId>commons-lang3</artifactId>

<version>3.12.0</version>

<scope>compile</scope>

</dependency>

provided

🈲

适用于需要在编译期间使用,但最终部署时由外部环境提供的库(例如,Servlet API)。

<dependency>

<groupId>javax.servlet</groupId>

<artifactId>servlet-api</artifactId>

<version>2.5</version>

<scope>provided</scope>

</dependency>

runtime

🈲

适用于仅在运行时需要的库(例如,JDBC驱动)。

<dependency>

<groupId>mysql</groupId>

<artifactId>mysql-connector-java</artifactId>

<version>8.0.26</version>

<scope>runtime</scope>

</dependency>

test

🈲

测试编译+测试运行✅

🈲

适用于仅在测试期间需要的库(例如,JUnit或Mockito)

不会打到包里

<dependency>

<groupId>junit</groupId>

<artifactId>junit</artifactId>

<version>4.13.2</version>

<scope>test</scope>

</dependency>

特殊的scope

含义

system

🈲

类似于provided,但需要显式提供包含依赖项的JAR文件的路径,并且路径是系统相关的。

<dependency> <groupId>com.example</groupId> <artifactId>example-library</artifactId> <version>0.0.1-SNAPSHOT</version> <scope>system</scope> <systemPath>${project.basedir}/libs/example-library-1.0.0.jar</systemPath> </dependency>

import

专门用于导入依赖项管理的范围,通常用于导入BOM(Bill of Materials)文件。

适用于从其他POM文件导入依赖项版本管理(仅适用于

)。【想把别的依赖管理也依赖进来。】

<dependencyManagement>

<dependencies>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifictId>spring-boot-dependencies</artificatId>

<version>2.5.4</version>

<type>pom</type>

<scope>import</scope>

</denpendency>

</dependencies>

</dependencyManagement>

 2.compile 作用域表示依赖在所有阶段(编译、测试、运行时)都可用。它是 Maven 默认的依赖作用域

​​​​​​​3.引用博客: ​​​​​​​ 

https://blog.csdn.net/yiguang_820/article/details/118214839​​​​​​​

 test

表示为当前依赖只参与测试阶段,打包之时,不会打到包里

​​​​​​

  • 10
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值