天天看点

Maven依赖范围及optional

时间久了,容易混淆,简单记录

依赖范围

依赖范围 编译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的类库