qidao123.com技术社区-IT企服评测·应用市场

标题: Maven依赖中的scope作用域 [打印本页]

作者: 我可以不吃啊    时间: 2025-4-17 22:30
标题: Maven依赖中的scope作用域
1.Maven作用

Maven 的一个哲学是惯例优于配置 (Convention Over Configuration), Maven 默认的依赖配置项中,scope 的默认值是 compile。依赖关系范围(Dependency Scope)用于限制依赖关系的可传递性,并确定何时将依赖关系包括在类路径中。
2.Scope作用域的6个范围

compile
provided
runtime
test
system
import
如下表所示,每个范围( 除外)以不同的方式影响传递依赖。假如将依赖项设置为左栏中的作用域,则该依赖项的可传递依赖项与顶行的作用域之间会导致主项目中的依赖项,其作用域列在交织点处。假如没有列出作用域,则表示省略了依赖关系。


传递性依赖:A->B,B->C,则 A->C。这是传递性依赖。依赖是有范围的,A->B,B->C 的依赖范围决定了 A->C 的依赖范围。
比方:
  1. A–>B–>C。当前项目为 A,A 依赖于 B,B 依赖于 C。知道 B 在 A 项目中的 scope,那么怎么知道 C 在 A 中的 scope呢?
  2. 1.当 C 是 test 或者 provided 时,C 直接被丢弃,A 不依赖 C;
  3. 2.否则 A 依赖 C,C 的 scope 继承于 B 的 scope
复制代码
3.maven中三种classpath

4.总结

主要需要把握以下几种 scope:
参考

官方网站:Maven Dependency Scope
mvn dependency:tree的详解

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 qidao123.com技术社区-IT企服评测·应用市场 (https://dis.qidao123.com/) Powered by Discuz! X3.4