maven中scope依赖范围与classpath的关系

Myth丶恋晨 2022-08-09 09:51 284阅读 0赞



















































依赖范围(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仓库解析的,而且都与本机系统绑定,可能造成构建不可移植,慎用.

发表评论

表情:
评论列表 (有 0 条评论,284人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Maven scope 依赖范围详解

    Maven的生命周期存在编译、测试、运行、打包这些过程,那么显然有些依赖只用于测试(test),比如 `junit` ; 有些依赖编译用不到,只有运行的时候才能用到( ru