maven的scope值runtime是幹嘛用的

時間 2021-06-09 22:32:35

1樓:懷丙師傅

我也不明白為什麼編譯時不需要,但是在執行時需要。直到在stackoverflow上看到乙個解釋,依賴倒置原則——依賴於抽象而不要依賴於具體,降低類之間的耦合。

2樓:babayetu liu

runtime

runtime表示被依賴專案無需參與專案的編譯,不過後期的測試和執行週期需要其參與。與compile相比,跳過編譯而已,說實話在終端的專案(非開源,企業內部系統)中,和compile區別不是很大。比較常見的如JSR×××的實現,對應的API jar是compile的,具體實現是runtime的,compile只需要知道介面就足夠了。

oracle jdbc驅動架包就是乙個很好的例子,一般scope為runtime。另外runtime的依賴通常和optional搭配使用,optional為true。我可以用A實現,也可以用B實現。

provided

provided意味著打包的時候可以不用包進去,別的設施(Web Container)會提供。事實上該依賴理論上可以參與編譯,測試,執行等週期。相當於compile,但是在打包階段做了exclude的動作。

run 和 go 當執行講時的區別是什麼? Everything goes well 可改成 Everything runs well 嗎?

法比安 通常來講說everything goes well時候go並沒有執行的意思。everything goes well翻譯過來就是直白的 一切順利 王贇 Maigo Everything goes well.這裡的事情指代比較廣泛,什麼事情都包括。Everything runs well.這裡...

在顏值時代顏值較低的怎麼生存

金水 顏值低不影響生存。沒實力,才影響生存。你覺得馬雲顏值高嗎?他影響生存了嗎?你覺得黃渤顏值高嗎?人家也照樣紅遍大江南北。你覺得郎朗算顏值高嗎?人家一雙手有技藝,走哪憑實力說話! 二度梅 不知道你在大學裡受了什麼 委屈 不妨說給大家聽聽。乙個看本領的時代怎麼就變成看顏值了,你當是皇帝在選妃嗎?你既...

左值和右值有沒有準確的定義

Byron 首先,在C 11中所有的值必屬於左值 右值兩者之一。在C 11中可以取位址的 有名字的就是左值,反之,不能取位址的 沒有名字的就是右值 將亡值expiring value或純右值pure Rvalue 這裡的有名字是值得注意的,由於Move semantic perfect forwar...