maven dependency依賴中scope標籤的常用值

很多時候默認情況下我們在加入dependency依賴的時候會不寫scope這個標籤,這個時候的scope默認就是compile,即maven的scope默認的值就是compile。除了compile之外,scope還可以取值爲provided,runtime,test,system和import。下面就分別說明這幾個在使用時候的含義。

compile:這是maven中默認的值,在不明確指定scope時,使用的就是compile。scope爲compile的依賴在項目的整個生命過程中都有用,在打包是會一同打包發佈。同時,scope聲明爲compile的依賴會傳遞給所有依賴當前項目的子項目。

provided:和compile和類似。不同之處在於當你將一個依賴的scope聲明爲provided時,你期望JDK或者容器提供這個依賴。比如當我們使用java創建web應用時,我們會加上Servlet API以及javaEE相關的依賴,但是Servlet容器裏面通常是提供這些依賴的。scope聲明爲provided的依賴僅僅在編譯和測試階段有效,並且不會被傳遞。

runtime:表明在編譯階段不需要這個依賴,但是在運行和測試階段需要。因此scope聲明爲runtime的依賴僅僅在編譯和測試階段有效。

test:僅僅在測試的編譯器和運行期有效。

system:類似於provided,不過本地倉庫會提供這個依賴,而不需要到遠程倉庫中查找。

import:Maven 2.0.9之後的版本可用,只可以用在dependencyManagement中,用來解決maven的單繼承和公共依賴的版本號問題。關於dependencyManagement的用法請自行百度,這裏就不再多贅述了。

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