依赖范围就是用来控制依赖与三种 classpath(编译 classpath、测试 classpath、运行 classpath)的关系。
依赖范围(scope) | 对于编译 classpath 有效 | 对于测试 classpath 有效 | 对于运行 classpath 有效(打到包里) | 例子 |
---|---|---|---|---|
compile | 是 | 是 | 是 | spring-core |
test | - | 是 | - | JUnit |
runtime | - | 是 | 是 | JDBC 驱动实现 |
provided | 是 | 是 | - | servlet-api(容器提供) |
system | 是 | 是 | - | 本地的,Maven 仓库之外的类库文件 |
import(Maven 2.0.9 及以上) | 不会对三种 classpath 产生实际的影响 |
import 依赖说明:
该范围的依赖只在 dependencyManagement 元素下才有效果,使用该范围的依赖通常指向一个 POM,作用是将目标 POM 中的 dependencyManagement 配置导入并合并到当前 POM 的 dependencyManagement 元素中。例如想要在另外一个模块中使用与代码清单8-14完全一样的 dependencyManagement 配置,除了复制配置或者继承这两种方式之外,还可以使用 import 范围依赖将这一配置导入。
参考
参考资料 | 网址 |
---|---|
书籍《Maven 实战》第五章:坐标和依赖,第5.5节:依赖范围 | |
maven官方介绍 | https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Dependency_Scope |