时间久了,容易混淆,简单记录
依赖范围
| 依赖范围 | 编译classpath有效 | 测试classpath有效 | 运行classpath有效 | 案例 |
|---|---|---|---|---|
| compile | Y | Y | Y | srping-core |
| test | —— | Y | —— | junit |
| provided | Y | Y | —— | servlet-api |
| runtime | —— | Y | Y | JDBC驱动 |
| system | Y | Y | —— | 本地的,Maven仓库之外的类库 |
optional(可选的)
依赖关系
projectA -----> projectB -----> projectC
-----> project D
上面projectA 依赖 projectB,projectB 依赖projectC、projectD。
假如projectB 引用 projectC 被声明位optional=true,则projectA只有显式依赖projectC,才能使用projectA的类库
本文详细解析了Maven中各种依赖范围(compile、test、provided、runtime、system、optional)的作用及有效范围,通过实例说明如何正确配置项目依赖,避免不必要的类库加载,提高项目构建效率。
723

被折叠的 条评论
为什么被折叠?



