Maven中的Scope標籤

scope 是用來限制Dependency的作用範圍的, 影響maven項目在各個生命週期時導入的package的狀態。舊版本中的Scope標籤有5種

compile

默認就是compile,什麼都不配置也就是意味着compile。

compile表示被依賴項目需要參與當前項目的編譯,當然後續的測試,運行週期也參與其中,是一個比較強的依賴。打包的時候通常需要包含進去。

test

scope爲test表示依賴項目僅僅參與測試相關的工作,包括測試代碼的編譯,執行。比較典型的如junit。

 

runntime

runntime表示被依賴項目無需參與項目的編譯,不過後期的測試和運行週期需要其參與。

 

provided

provided意味着打包的時候可以不用包進去,別的設施(Web Container)會提供。事實上該依賴理論上可以參與編譯,測試,運行等週期。相當於compile,但是在打包階段做了exclude的動作。

 

system

從參與度來說,也provided相同,不過被依賴項不會從maven倉庫抓,而是從本地文件系統拿,一定需要配合systemPath屬性使用。

 

import (Maven 2.0.9 之後新增)
它只使用在<dependencyManagement>,表示從其它的pom中導入dependency的配置


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章