| 依赖范围(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仓库解析的,而且都与本机系统绑定,可能造成构建不可移植,慎用. |
本文详细介绍了Maven项目中不同依赖范围的含义及其在编译、测试和运行阶段的应用。例如,compile范围适用于所有阶段,而test范围仅在测试阶段生效。
737

被折叠的 条评论
为什么被折叠?



