依赖管理基础专题测试
考察知识点
- 依赖声明与坐标引用(dependencies 标签、GAV 三要素、dependencyManagement 中的版本省略)
- 依赖范围详解(compile/provided/runtime/test 范围及其打包行为)
- 传递性依赖机制(自动引入、scope 影响、dependency:tree 查看方法)
- 依赖排除与排除策略(exclusions 标签使用、避免类路径污染与版本冲突)
- 依赖版本冲突解决(最短路径优先、声明优先、dependencyManagement 统一管理)
以下哪项不是 Maven 依赖坐标的必需元素?
Maven 项目的所有外部依赖都必须在 POM 文件的 dependencies 标签内声明。
在 POM 中声明依赖时,____________ 标签内可以包含多个 __________ 子标签,每个子标签代表一个外部依赖。
以下哪种依赖范围的依赖在编译和测试时都需要,但在运行时不需要?
如果不指定依赖范围,则依赖默认为 compile 范围,会被包含在编译、测试和运行时的 classpath 中。
以下哪些依赖范围的依赖会被包含在最终打包产物中(如 war 的 WEB-INF/lib)?
JUnit 等测试框架的依赖范围应该设置为 ______,因为这类依赖仅在 ______ 阶段需要,不会被打包到生产产物中。
项目 A 依赖 B,B 依赖 C。如果 A 未直接声明对 C 的依赖,会发生什么?
关于 Maven 的传递性依赖,以下说法正确的有哪些?
在 POM 中使用 exclusions 排除传递依赖时,exclusions 标签应该放在哪里?
使用依赖排除的主要目的是避免 __________ 和 ________,确保项目使用正确版本的库。
当存在多个版本的同一依赖时,Maven 默认使用哪个版本?
使用 dependencyManagement 可以统一管理传递依赖的版本,即使在不同子模块中声明也会被覆盖。
Maven 解决版本冲突的两个主要策略是:____________(优先选择依赖树中路径最短的版本)和 ________(路径相同时优先选择 POM 中先声明的版本)。
在 pom.xml 的 dependencies 元素中,每个 dependency 必须声明 groupId、artifactId 和 version 三个坐标要素。
📝 发现内容有误?点击此处直接编辑
长按或扫描二维码,立即体验