maven 組件作用域

compile

默認(rèn)就是compile,什么都不配置也就是意味著compile。compile表示被依賴項(xiàng)目需要參與當(dāng)前項(xiàng)目的編譯,當(dāng)然后續(xù)的測(cè)試,運(yùn)行周期也參與其中,是一個(gè)比較強(qiáng)的依賴。打包的時(shí)候通常需要包含進(jìn)去。

test

scope為test表示依賴項(xiàng)目?jī)H僅參與測(cè)試相關(guān)的工作,包括測(cè)試代碼的編譯,執(zhí)行。比較典型的如junit。

runntime

runntime表示被依賴項(xiàng)目無(wú)需參與項(xiàng)目的編譯,不過(guò)后期的測(cè)試和運(yùn)行周期需要其參與。與compile相比,跳過(guò)編譯而已,說(shuō)實(shí)話在終端的項(xiàng)目(非開源,企業(yè)內(nèi)部系統(tǒng))中,和compile區(qū)別不是很大。比較常見的如JSR×××的實(shí)現(xiàn),對(duì)應(yīng)的API jar是compile的,具體實(shí)現(xiàn)是runtime的,compile只需要知道接口就足夠了。Oracle jdbc驅(qū)動(dòng)架包就是一個(gè)很好的例子,一般scope為runntime。另外runntime的依賴通常和optional搭配使用,optional為true。我可以用A實(shí)現(xiàn),也可以用B實(shí)現(xiàn)。

provided

provided意味著打包的時(shí)候可以不用包進(jìn)去,別的設(shè)施(Web Container)會(huì)提供。事實(shí)上該依賴?yán)碚撋峡梢詤⑴c編譯,測(cè)試,運(yùn)行等周期。相當(dāng)于compile,但是在打包階段做了exclude的動(dòng)作。

system

從參與度來(lái)說(shuō),也provided相同,不過(guò)被依賴項(xiàng)不會(huì)從maven倉(cāng)庫(kù)抓,而是從本地文件系統(tǒng)拿,一定需要配合systemPath屬性使用。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Maven的一個(gè)哲學(xué)是慣例優(yōu)于配置(Convention Over Configuration), Maven默認(rèn)...
    小狼在IT閱讀 1,022評(píng)論 0 1
  • 一、Maven簡(jiǎn)介 1.1 Maven是什么 Maven這個(gè)單詞來(lái)自于意第緒語(yǔ),意為知識(shí)的積累,最早在Jakata...
    這一刻_776b閱讀 269評(píng)論 0 0
  • 在添加依賴的時(shí)候有時(shí)候會(huì)看到有著樣的寫法,比平常的多了scope參數(shù) 下面來(lái)解釋一下scope參數(shù) Scope M...
    熙熙爸爸閱讀 13,246評(píng)論 1 5
  • 一、maven的兩個(gè)作用 項(xiàng)目自動(dòng)化構(gòu)建,通過(guò)命令行就可以完成整個(gè)項(xiàng)目構(gòu)建過(guò)程,不需要我們手動(dòng)地進(jìn)行項(xiàng)目構(gòu)建 管理...
    lifeline張閱讀 917評(píng)論 0 1
  • 一. 簡(jiǎn)介 Maven 是 Apache 組織下的一個(gè)跨平臺(tái)的項(xiàng)目管理工具,它主要用來(lái)幫助實(shí)現(xiàn)項(xiàng)目的構(gòu)建、測(cè)試、打...
    wind_sky閱讀 700評(píng)論 0 0

友情鏈接更多精彩內(nèi)容