scope屬性
<dependency> scope屬性是用來限制第三方依賴包的做用範圍, 影響maven項目在各個生命週期時導
入的package的狀態。自從2.0.x後,新增了1種,如今有了6種經常使用scope:
-
compile
* 默認的scope
* 表示 dependency 能夠在生命週期中使用。且這些dependencies 會傳遞到依賴的項目中
-
provided
* 跟compile類似,可是代表了dependency 由JDK或者容器提供【例如Servlet API等】
* 這個scope 只能做用在編譯和測試時,同時沒有傳遞性。不會將包打入本項目中,只是依賴過來。
-
runtime
表示dependency不做用在編譯時,但會做用在運行和測試時
-
test
表示dependency做用在測試時,不做用在運行時
-
system
* 跟provided 類似。必須經過元素顯式地指定依賴文件的路徑,maven不會在repository查找它
* 因爲此類依賴不是經過maven倉庫解析的,並且每每是與本機系統綁定,可能形成構件的不可移
植性,因此要謹慎使用。
-
import
* maven 2.0.9 以後新增
* 只使用在<dependencyManagement>中,表示從其它的pom中導入dependency的配置
type屬性