介绍
Scope指定依赖关系的范围,用于限制依赖关系的传递性及影响各个构建任务的类路径。
详细介绍
scope依赖范围
范围 | 说明 | 使用场景 |
---|---|---|
compile | 默认,编译、运行、测试、打包,可传递 | |
provided | 编译、运行、测试,不可传递,可被继承 | Servlet API和JavaEE API的依赖关系,Web容器已经提供,无需被打包。 |
runtime | 运行、测试、打包,可传递 | JDBC驱动,无需编译,运行时需要。 |
test | 编译、测试 ,不可传递 | Junit |
system | 不推荐,与provider范围相似,但必须显示systemPath属性定义本地系统中JAR 文件的路径,Maven不会从仓库中寻找,可传递 | |
import | 仅作用于中的pom类型的依赖项 | 父POM的导入 |
scope与classpath关系
范围 | 编译classpath | 测试classpath | 运行时classpath | 传递性 |
---|---|---|---|---|
compile | Y | Y | Y | Y |
provided | Y | Y | - | - |
runtime | - | Y | Y | Y |
test | - | Y | - | - |
system | Y | Y | - | Y |