依赖关系范围用于限制依赖关系的可传递性,并且还影响用于各种构建任务的类路径。
六种可用作用域:
1、compile
默认作用域;在项目的所有类路径中均可用,而且这些依赖项会传播到依赖整个项目。
2、provided
和compile很相似,但表示您希望JDK或容器在运行时提供依赖关系,例如,在为Java Enterprise Edition构建Web应用程序时,应将对Servlet API和相关Java EE API的依赖关系设置为povided范围,因为Web容器也提供了这些类;
该作用域仅在编译和测试类路径上可用,并且不可传递。
3、runtime
运行期可用。它作用在运行时和测试类路径中,但不在编译类路径中。
4、test
仅在测试路径对编译和执行阶段可用。此范围不是可传递的。
5、system
和provided很相似,除了必须提供显式包含它的JAR。该artifact始终可用,并且不会在存储库中查找更新。
6、import
此范围仅受<dependencyManagement>部分中类型为pom的依赖项才支持;它在指定的POM的<dependencyManagement>部分中指示要用有效的依赖关系列表替换的依赖关系;由于它们已被替换,因此具有import范围的依赖项实际上并不参与限制依赖项的可传递性。
<dependencyManagement>
<dependencies>
<depend