maven 依赖中scope标签的配置范围详解

时间:2021-08-19 15:34:52

在创建Maven项目时,需要在pom.xml 文件中添加相应的依赖,其中有一个scope标签,该标签是设置该依赖范围

(maven项目包含三种classpath{编译classpath,测试classpath、运行classpath})的,其可选配置:compile、test、provided、runtime、system和import。

maven有以下几种依赖范围:

  • compile:编译依赖范围,如果在依赖中没有配置该标签,则默认为该依赖范围。此依赖范围对 于编译、测试、运行三种classpath都有效。
  • test:测试依赖范围,此依赖范围只针对于测试classpath有效。在编译和运行时,都不会引入。
  • provided:已提供依赖范围,使用该依赖范围对于编译和测试的classpath有效,在运行时,不会引入。
  • runtime:运行时依赖范围,使用该依赖范围对测试和运行的classpath有效,在编译时,不会引入。
  • system:系统依赖范围,该依赖范围与provided依赖的范围完全一致,但是该依赖必须通过配置systemPath元素来显示指定依赖文件的路径,此类依赖不是由maven仓库解析的,而且往往与本机系统绑定,可能造成构件的不可移植。
  • import:导入依赖范围,该依赖范围不会对三种classpath产生影响,该依赖范围只能与dependencyManagement元素配合使用,其功能为将目标pom文件中dependencyManagement的配置导入合并到当前pom的dependencyManagement中。

 

以上内容的学习参考以下文献

https://blog.csdn.net/seasonsbin/article/details/79093647

https://blog.csdn.net/litte_frog/article/details/79390392

https://blog.csdn.net/douyunqian668/article/details/80898165

对此,非常感谢。