maven dependency中scope的依賴作用域

scope=compile:

這是依賴作用域的默認值,表示程序的編譯,測試,部署運行我們的程序都需要依賴這個jar包。說白了就是再依賴中添加這個之後,你的程序會一直使用當前的這個依賴


scope=provided:
表示的是當程序只在編譯和測試階段,程序依賴當前這個jar包。在運行階段,程序就會去找程序所在容器中的這個jar包(比如你在maven中添加了servlet-api.jar這個依賴,部署的時候將程序部署在了tomcat中,那麼在編譯和測試階段程序使用的就是maven中依賴的servlet-api.jar    當程序部署在tomcat中之後,程序使用的就是tomcat中的servlet-api.jar)

 

明白依賴作用域的問題,可能也就明白爲什麼有時候maven中明明依賴了的jar包,在上線之後爲什麼會出現找不到加載類的問題。也可解決部分jar包衝突問題(下面試作用域取值)

 

1、compile(默認值):在編譯、運行、測試、打包都有效;

2、provided:編譯、測試時有效,運行、打包無效;

3、test:僅在測試時有效;

4、runtime:測試、運行、打包時有效;

5、system:不推薦使用,使用system作用域不會去本地倉庫尋找依賴,要指定本地路徑;

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