• +86-156-1535-0639
  • jianpengqi@126.com

Maven依赖范围

  • QI-Jianpeng

对于新手来说,Maven的依赖选项是一件让人头疼的也是首先需要掌握的事情.
因此, 本文对Maven的依赖范围进行一下整理.

compile: 编译依赖范围(默认), 此选项在编译, 测试, 运行中都会将依赖加入.

test: 测试依赖范围, 只对于测试有效, 但是在运行时无效.

provided: 已提供依赖范围, 说的是在运行环境下已经有了该依赖的环境, 不需要自己提供, 即在编译和测试时有效.

runtime: 运行时依赖范围, 对于测试和运行classpath有效, 但在编译主代码时无效, 也就是说主代码需要实现相应的具体功能.

system: 系统依赖范围(与provided类似), 这是系统自己本身提供的依赖, 不是从maven库下载的.

表格引自 Maven实战

依赖范围 对于编译classpath有效 对于测试classpath有效 对于运行时classpath有效
compile Y Y Y
test - Y -
provided Y Y -
runtime - Y Y
system Y Y -