一千萬個為什麽

搜索

解決maven在非平凡依賴項中“無法解決工件”的問題

在構建舊項目時,有時我會遇到可怕的無法解決工件錯誤。

我所做的是搜索該特定工件的 jarpom 並使用 mvn install:install-file 目標,在本地手動安裝

這解決了瑣碎的情況,但有時項目對工件的依賴並不簡單,包括在項目的pom字段中,例如:

      runtime

或者更糟:

      
        cglib
        cglib-nodep
      

你會如何處理這些案件?有沒有辦法將這些字段添加到命令中?

最佳答案

運行時依賴項是Maven將添加到測試類路徑中的依賴項,包含在程序集或war中,但不包含在編譯類路徑中。如果您需要運行測試或軟件包,您只需執行完全相同的安裝:install-file thing (或者,更好的是,運行repo manager並部署它)。運行時是範圍

另一方面,如果你遇到:


   abelian
   grape
   transitive

然後你需要使用-Dpackaging = transitive來安裝:install-file,類似地使用'classifier'( - Dclassifier)。

如果您需要向依賴關系樹添加一些在其pom中有排除的東西,那麽您將需要查找或構建具有該排除的POM,並將其傳遞給安裝文件目標,該目標具有<�代碼POM的> -D 。沒有什麽可以告訴安裝:install-file告訴它在從空中構建POM時添加排除項。

轉載註明原文: 解決maven在非平凡依賴項中“無法解決工件”的問題