日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費收錄網(wǎng)站服務,提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

Maven是目前JAVA開發(fā)主要使用的依賴管理構建工具之一,但是很多人在引用依賴的時候直接引用坐標,而沒有考慮依賴的作用范圍,結果導致出現(xiàn)這樣和那樣的問題。今天胖哥就來說明一下Maven引用依賴的一個要點概念——作用域

要選擇正確的scope

scope是Maven坐標的一個關鍵字,它主要來限制依賴的作用域。它有五種類型:

Maven依賴的作用域你到底用對了沒有

Maven依賴的作用域

選擇合理的作用域,能夠避免一些依賴引用問題。

compile

這是我們大部分情況下使用的引用作用域,它也是Maven默認的scope值,表明該依賴從Java代碼編譯、測試以及運行時都會參與其中。

runtime

runtime顧名思義,只參與運行時,跳過了編譯階段。當然它打fat jar時也會像compile一樣打包。比如我們常用的數(shù)據(jù)庫驅動,你可以去看看自己Spring Boot項目生成器初始化數(shù)據(jù)庫驅動依賴的是不是runtime

provided

provided用的同學相信不會太多。它用來聲明你希望JDK和容器運行時來提供它,你自己不引入,僅僅使用這個依賴,在一些通用規(guī)范和插件擴展使用該選項比較普遍。舉個例子,servlet api你希望Servlet容器提供,但是你自己還希望去調用HttpServletRequest之類的API,你就可以用provided來聲明。

它還有一個場景,比如你自己開發(fā)一個針對某個類庫A的擴展類庫B,你肯定要在擴展類庫B中引用A。如果你不使用provided,當你開發(fā)完擴展類庫B,直接引用B就能使用完整的功能;如果你使用provided,你需要同時引用AB。為什么要這樣做呢?這樣做可以讓擴展類庫更加純粹,僅僅提供擴展功能,而不干涉主類庫的功能,徹底的插件化。

system感覺和provided正好相反。provided是要求別人提供;而system是別人不提供自己提供, Maven不會在本地存儲庫中查找。使用system的大部分沒有托管在Maven中央倉庫和私有倉庫,另外provided不會被打包,只是申明一個調用關系,system會被打包。

?

胖哥僅僅建議在測試一些三方私有jar的時候使用,如果該jar被選中的話,還是建議放入私有倉庫。system我個人不建議在生產(chǎn)中使用。

optional

optional不是scope的一個選項,而是一個關鍵字,它的選項是布爾值true和false。這里之所以要說一說,是因為它也能控制依賴的作用域,只不過它的場景和上面的不一樣。它用來聲明依賴是否是可選的(optional)而不向上傳遞。

來舉一個例子,胖哥開發(fā)了一個類庫,使用了lombok。但是很多開發(fā)者很反感lombok,一看胖哥的這個類庫里面用lombok他們就不用了。胖哥為了推廣,肯定要想辦法照顧這一部分人,所以就讓lombokoptional值設置為true。這樣不耽誤胖哥類庫中lombok注解的使用,也不影響使用了胖哥類庫的開發(fā)者。你可以去看看Spring Boot Starter,里面使用了大量的optional

?

要注意和provided的區(qū)別,provided是這個庫我一定要用,但是這個庫我不提供;optional是這個庫我也用,但是我不給你用。

總結

依賴作用域在開發(fā)中一定不要忽略,選擇合理的作用域能讓你項目的依賴更加合理和“干凈”。看了本篇后,趕緊去看看你項目的依賴引用是否合理吧。

分享到:
標簽:Maven
用戶無頭像

網(wǎng)友整理

注冊時間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨大挑戰(zhàn)2018-06-03

數(shù)獨一種數(shù)學游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數(shù)有氧達人2018-06-03

記錄運動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定