1、依赖范围scope
---影响编译时CLASSPATH、测试时类路径、运行时类路径
---会根据配置的值,按照构件坐标,把构件复制到指定的编译环境或运行环境所需的类路径
--test:依赖仅仅对测试编译和测试运行CLASSPATH可见
--compile:对编译、测试、运行都可见
--runtime:在运行时需要,编译时不需要,比如有接口就可以了
--provider:只在编译时依赖,构件在运行时由容器提供
--system同provider
2、最佳实践
--排除传递依赖后,再显式依赖
<dependencies>
<dependency>
<groupid>xxx</groupid>
<artifactid>xxx</artifactid>
<exclusions>
<exclusion>
</exclusion>
</exclusions>
</dependecy>
</dependencies>
--归类依赖:比如定义版本为属性,便于在项目引用,方便以后升级,
实用于相同项目的子模块的版本
<properties>
<springframework.version>5.5.6</springframework.version>
</properties>
--引用
-${springframework.version}
3、查看依赖
mvn dependency:list
mvn dependency:tree
mvn dependency:analyze