# 依赖范围

标签的位置:dependencies/dependency/<font color='blue'>scope</font>

标签的可选值:<font color='blue'>compile</font>/<font color='blue'>test</font>/<font color='blue'>provided</font>/system/runtime/<font color='red'>import</font>

# compile 和 test 对比

main 目录 (空间)test 目录 (空间)开发过程 (时间)部署到服务器 (时间)
compile有效有效有效有效
test无效有效有效无效

# compile 和 provided 对比

main 目录 (空间)test 目录 (空间)开发过程 (时间)部署到服务器 (时间)
compile有效有效有效有效
provided有效有效有效无效

# 结论

compile: 通常使用第三方框架的 jar 包这样在项目实际运行时真正要用到的 jar 包都是以 compile 范围进行依赖的,比如 SSM 框架所需 jar 包

test: 测试过程中使用的 jar 包,以 test 范围依赖进来,比如:junit

provided: 在开发过程中需要用到的 "服务器上的 jar 包" 通常以 provided 范围依赖进来,比如 servlet-api,jsp-api, 而这个范围的 jar 包之所以不参于部署,不放进 war 包,就是避免和服务器上已有的同类 jar 包产生冲突,同时减轻服务器的负担,说明了就是 "服务器上已经有了,带了会引发不必要的麻烦"