up: Maven 依赖 tag::依赖

Maven 编译项目主代码的时候使用一套 classpath,在编译执行测试的时候使用另一套 classpath,而实际运行 Maven 项目时候又会使用一套 classpath,因此总共有三套 classpath。

依赖范围就是来控制与这三种 classath(编译 classpath,测试 classpath,运行 classpath)的关系。如果没有指定依赖范围,就会默认使用 compile依赖范围。

依赖范围和三种 classpath 的关系如下:

依赖范围 (Scope)对于编译 classpath 有效对于测试 classpath有效对于运行时 classpath 有效例子
compileYYYspring-core
testYJUnit
providedYYservlet-api
runtimeYYJDBC 驱动实现
systemYY本地的 maven 仓库外的类库文件