Maven依賴scope範圍詳解

Maven的生命週期存在編譯、測試、運行這些過程,那麼顯然有些依賴只用於測試,比如junit;有些依賴編譯用不到,只有運行的時候才能用到,比如mysql的驅動包在編譯期就用不到(編譯期用的是JDBC接口),而是在運行時用到的;還有些依賴,編譯期要用到,而運行期不需要提供,因爲有些容器已經提供了,比如servlet-api在tomcat中已經提供了,我們只需要的是編譯期提供而已。總結說來,在POM 4中,<dependency>中還引入了<scope>,它主要管理依賴的部署。大致有compile、provided、runtime、test、system等幾個。

compile :默認的scope,運行期有效,需要打入包中
provided:編譯期有效,運行期不需要提供,不會打入包中
runtime :編譯不需要,在運行期有效,需要導入包中。(接口與實現分離)
test        :測試需要,不會打入包中
system   :非本地倉庫引入、存在系統的某個路徑下的jar。(一般不使用)



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