时间久了,容易混淆,简单记录
依赖范围
依赖范围 | 编译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的类库