依赖范围(Scope) |
对于编译有效 |
对于测试有效 |
对于运行有效 |
例子 |
备注 |
compile |
Y |
Y |
Y |
spring-core |
在编译,测试,运行时spring-core的jar都要加入到classpath中 |
test |
- |
Y |
- |
Junit |
只在测试阶段junit的jar要加入到classpath中 |
provided |
Y |
Y |
- |
servlet-api |
只在编译,测试中要加入servlet-api的jar,但运行时,容器会提供这个jar,所以运行期不要加入 |
runtime |
- |
Y |
Y |
jdbc驱动 |
在编译时,只需要 sun提供的jdbc接口即可,在测试和运行期则要这个驱动. |
system |
Y |
Y |
- |
本地的,Maven仓库之外的类库文件 |
与provided依赖范围一样。但使用system范围的依赖必须通过systemPath元素显式指定依赖文件的路径。因为这个依赖不是由Maven仓库解析的,而且都与本机系统绑定,可能造成构建不可移植,慎用. |