前言
一个项目中,项目依赖的包是可以设定范围的,能更为灵活构建整个项目。在maven中导入一个坐标是同样可以设定其范围的。以Scope标签去设定。下面说说常用的几个作用范围。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.2.9.RELEASE</version>
// compile(默认)、test、provided、runtime、system、import
<scope>compile</scope>
</dependency>
一、compile
maven默认的依赖范围。是比较强的依赖,适用于所有阶段。
有效范围: 编译、运行和测试。
通常我们的项目经过编译—>运行
二、provided
provided的意思是已提供的,jar既然有了提供的了,那就无需在运行时依赖。
有效范围: 编译、测试。
例:可以防止和tomcat下jar冲突,servlet api在tomcat容器已经有了,无需maven重复引入。
三、runtime
runtime就是在运行时作用,在测试下也会作用,、但编译时不依赖。
有效范围: 运行、测试。
四、test
test在测试的阶段下作用。
有效范围: 测试。
五、system
system与provided类似,但必须显式的提供一个位于本地系统中JAR文件的路径,需要指定systemPath磁盘路径,system依赖不推荐使用。
总结
参考或相关文章
- https://www.jianshu.com/p/c5d84c2c7fc8
- https://juejin.cn/post/6870758607659646983