| 依赖范围(Scope) | 对于主代码classpath有效 | 对于测试代码classpath有效 | 被打包,对于运行时classpath有效 | 例子 |
|---|---|---|---|---|
| compile | Y | Y | Y | log4j |
| test | - | Y | - | junit |
| provided | Y | Y | - | servlet-api、jsp-api |
| runtime | - | - | Y | JDBC Driver Implementation |
compile: 默认编译依赖范围。对于编译,测试,运行三种classpath都有效
test:测试依赖范围。只对于测试classpath有效
provided:已提供依赖范围。对于编译,测试的classpath都有效,但对于运行无效。因为由容器已经提供,例如servlet-api、jsp-api(tomcat lib中自带的那些,防冲突)
runtime:运行时提供。例如:jdbc驱动
本文详细介绍了Maven项目中不同依赖范围(compile、test、provided、runtime)的应用场景及打包时的有效性。compile为默认范围,适用于所有阶段;test仅用于测试;provided用于编译和测试但运行时不包含;runtime则相反,主要用于JDBC驱动等。
722

被折叠的 条评论
为什么被折叠?



