天天看點

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的類庫