scope用于指定当前包的依赖范围和依赖传递性
默认。
编译、运行、测试都有效。
JDK或容器提供才使用。
编译、测试有效。
运行和测试有效。
测试编译和测试运行阶段有效。
类似provided,显示指定本地系统的jar文件路径。
编译、测试有效,运行时无效。
用在<dependencyManagement>
中的类型依赖项上。
scope | 有效范围 | 依赖传递 | 例 |
---|---|---|---|
compile | all | 是 | spring-core |
provided | compile, test | 否 | servlet-api |
runtime | runtime, test | 是 | JDBC驱动 |
test | test | 否 | JUnit |
system | compile, test | 是 |
例:
A -> B -> C
当前项目A,A依赖B,B依赖C。
已知B在A项目中的scope,问C在A中的scope是什么?
答案:
当C是test或provided时,被丢弃,A不依赖C。
否则A依赖C,C的scope继承自B的scope。
原文:https://www.cnblogs.com/stonechen/p/14310370.html