maven中scope依赖范围与classpath的关系
依赖范围(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仓库解析的,而且都与本机系统绑定,可能造成构建不可移植,慎用. |
还没有评论,来说两句吧...