# 依赖范围
标签的位置: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 包产生冲突,同时减轻服务器的负担,说明了就是 "服务器上已经有了,带了会引发不必要的麻烦"