maven依赖的范围scope

maven当中的依赖范围, 使用scope表示。
scope的值有 compile, test, provided ,默认是compile
scope:表示依赖使用的范围,也就是在maven构建项目的哪些阶段(maven构建项目清理 编译, 测试 ,打包, 安装 ,部署)中起作用。
在这里插入图片描述
在这里插入图片描述
test范围

例如:

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

junit的依赖范围是 test,那说明和junit的测试代码在执行测试阶段的时候,在测试阶段才有效,而在其他阶段是没有作用的(也可以认为在idea创建maven项目当中,只能在绿色的test文件夹下使用)。
在这里插入图片描述compile范围
而compile范围指的是在 清理 编译, 测试 ,打包, 安装 ,部署阶段 都得有这个坐标依赖,否则代码就编译不了。

例如 我们pom文件当中:指定范围compile
在这里插入图片描述
对项目进行打包,打包后,解压war 发现打包的文件当中存在我们在项目当中引入的相关依赖jar
在这里插入图片描述

provided范围
而provided范围指的是 在清理 编译, 测试阶段 都得有这个坐标依赖,而在打包, 安装 ,部署不需要使用

例如 我们pom文件当中:指定范围provided
在这里插入图片描述
在这里插入图片描述
打包后,解压war文件 发现并没有我们在项目当中引入的相关的依赖jar
在这里插入图片描述

总结:

依赖的范围:
  compile:默认的,如果没写scope那么默认就是compile,编译时有效、测试时有效、运行时有效,一般的jar包都是这个范围
  test: 编译时无效、测试时有效、运行时无效,一般只有Junit单元测试的jar包。说白了只在test/java文件夹中使用的jar
  provided: 编译时有效、测试时有效、运行时无效,运行时不需要的jar包,一般tomcat自己提供的jar我们都会声明provided,因为,编译和测试都在本地,我们需要jar,但是我们打包的项目最终是部署运行在tomcat上,tomcat提供了我们声明provided的jar了,所以我们就不需要
  runtime: 编译时无效、测试时有效、运行时有效, 编译时不会使用的jar包 比如mysql驱动、比如Lombok
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值