依賴範圍

Maven在編譯項目主代碼時須要使用一套classpath,在編譯和執行測試的時候會使用另一套classpath,最後實際運行Maven項目的時候,又會使用一套classpath。spring

依賴範圍就是用來控制依賴與這3種classpath(編譯classpath、測試classpath、運行classpath)的關係,Maven有如下幾種依賴範圍:api

範圍 描述
compile 編譯依賴範圍。若是沒有指定,就會默認使用該依賴範圍。使用此依賴範圍的Maven依賴,對於編譯、測試、運行3種classpath都有效。典型的例子是spring-core。
test 測試依賴範圍。使用此依賴範圍的Maven依賴,只對於測試classpath有效,在編譯主代碼或運行項目時將沒法使用此類依賴。典型的例子是Junit。
provided 已提供依賴範圍。使用此依賴範圍的Maven依賴,對於編譯和測試classpath有效,但在運行時無效。典型的例子是servlet-api。
runtime 運行時依賴範圍。使用此依賴範圍的Maven依賴,對於測試和運行classpath有效,但在編譯主代碼時無效。典型的例子是jdbc驅動實現。
system 系統依賴範圍。該依賴與3種classpath的關係,和provided依賴範圍徹底一致。可是使用system範圍的依賴時必須經過systemPath元素顯式地指定依賴文件的路徑。因爲此類依賴不是經過Maven倉庫解析的,每每與本機系統綁定,可能形成構建的不可移植,所以應該謹慎使用。
import 後續介紹
相關文章
相關標籤/搜索