Maven scope属性说明

scope用于指定当前包的依赖范围和依赖传递性

scope取值

compile 编译

默认。
编译、运行、测试都有效。

provided 已提供

JDK或容器提供才使用。
编译、测试有效。

runtime 运行时

运行和测试有效。

test 测试

测试编译和测试运行阶段有效。

system 系统

类似provided,显示指定本地系统的jar文件路径。
编译、测试有效,运行时无效。

import 导入

用在<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