依赖范围(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仓库解析的,而且都与本机系统绑定,可能造成构建不可移植,慎用. |
相关文章
provided 关于maven依赖中的scope的作用和用法- maven依赖关系中Scope的作用
- Maven中依赖的scope的依赖范围
- Intellij IDEA 中如何查看maven项目中所有jar包的依赖关系图
- Maven依赖中scope的含义
- UML中几种类间关系:继承、实现、依赖、关联、聚合、组合的联系与区别
- 理解maven项目的pom.xml文件中,
标签的作用——作用域以及依赖传递 - maven 依赖中scope标签的配置范围详解
- Maven依赖中的scope详解,在eclipse里面用maven install可以编程成功,到服务器上用命令执行报VM crash错误
- Maven依赖中的scope