1 回答

TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超6個(gè)贊
讓我嘗試更籠統(tǒng)地回答這個(gè)問題:
Maven 通過傳遞性地遍歷依賴關(guān)系樹來構(gòu)建所有依賴關(guān)系的列表,收集每個(gè)依賴關(guān)系,然后進(jìn)行依賴關(guān)系中介(如果您發(fā)現(xiàn)一個(gè)工件的多個(gè)版本)。
這是收集依賴關(guān)系的一種粗略方法,它或多或少保證您擁有所需的一切——但通常您擁有的更多。
這是為什么?
首先,在運(yùn)行時(shí),您通常只調(diào)用已定義類的子集,因此很容易發(fā)生應(yīng)用程序的某些部分(如某些依賴項(xiàng))從未被觸及的情況。在許多情況下,甚至可以靜態(tài)地證明某個(gè)依賴項(xiàng)永遠(yuǎn)不能通過正常的鏈調(diào)用,因?yàn)槔缒皇褂?code>A依賴項(xiàng)的一個(gè)類a.jar
,并且僅在與無關(guān)的事情上a.jar
依賴但需要它。b.jar
A
但是:在運(yùn)行時(shí)可能有多種方式需要 jar,但很難檢測到。這包括不同類型的依賴項(xiàng)注入,尤其是在應(yīng)用程序服務(wù)器上。
添加回答
舉報(bào)