maven依赖的作用域\<scope>

3. maven依赖的作用域<scope>

  1. 属性包括Scope的作用域范围包括compile、test、provided、runtime、system、import。 编译、测试、运行,并且还可以加上是否被打入包中。
  2. compile
    此范围为默认依赖范围,是一个比较强的依赖,适用于所有阶段。

这些dependencie(依赖)的jar,会传递到其他依赖的上层项目中。

由于运行时需要所以编译范围的依赖会被打包,会随着项目一起发布。

范围:编译、测试、运行(部署)都有效 。

  1. test
    表示被依赖项目仅仅参与测试相关的工作,在编译和运行时都不需要,只在编译测试代码或者运行测试代码的时候才能使用该依赖。比较典型的如junit。

由于运行时不需要所以test范围依赖不会被打包。

范围:仅测试有效

  1. provided
    provided依赖在编译和测试时需要,在运行时不需要。

正因为运行时无效,可以防止和tomcat下jar冲突,因为servlet api被tomcat容器提供,就不需要maven再重复引入。

由于运行时不需要所以provided范围依赖不会被打包。

范围:编译、测试有效。

  1. runtime
    runtime依赖在运行和测试的时候需要,但在编译的时候不需要。与compile相比,被依赖项目无需参与项目的编译。

比如:jdbc的驱动包,项目主代码的编译只需要JDK提供的JDBC接口,只有在执行测试或者运行项目的时候才需要实现上述接口的具体JDBC驱动。

由于运行时需要所以runtime范围的依赖会被打包。

范围:测试、运行有效。

  1. system
    system范围依赖与provided类似,但是你必须显式的提供一个位于本地系统中JAR文件的路径,需要指定systemPath磁盘路径,system依赖不推荐使用。

  2. import
    我们看到,这里多了一个import,它的意思是将spring-boot-dependencies 中dependencyManagement的dependencies,全部引入到当前工程的dependencyManagement中。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值