簡體   English   中英

安裝具有傳遞依賴關系/依賴關系樹的第三方圖書館?

[英]Install 3rd Party Libraries with Transitive Dependencies / Dependency Tree?

我是Maven新手,花了幾個小時學習基礎知識,但是我仍然沒有找到任何好的文檔來了解如何在本地安裝具有所有(傳遞)依賴項的3rd Party JAR。

我知道mvn install:install-file確實會安裝一個JAR。 但是如何在本地存儲環境中進行如下所示:

+ Parent.jar
  + ChildA.jar (Requuired by Parent)
    + ChildB.jar (Required by Child A)

為了使它更加復雜和真實,請執行以下操作:Parent.jar和ChildA.jar是遺留/商業Jars,在公共Maven存儲庫中不可用,但是Child B是在公共存儲庫中找到的jar(例如,類似於日志記錄jar) 。

更新:我不僅要在本地安裝它們(具有系統依賴關系),而且還想“正確地”用maven對其進行集成,以便我可以將此依賴關系樹重新分發給其他開發人員或公眾(並且我認為這對maven很重要) ,以便Maven知道並理解Dependecytree(以避免版本沖突,不必要的下載等)

任何鏈接或信息如何完美地描述如何做到這一點都很好。

非常感謝你!! 分數

由於您實際上是想實際發布,以便其他人可以將其與已定義的依賴項一起使用,因此,您幾乎必須將3rd jar放入公開可用的存儲庫中。

以下是有關如何完成此操作的說明

但是請注意,代碼的許可可能不允許您將其發布到中央存儲庫。 可以部署它之前檢查它。

如果是商業jar,則將其部署到中央存儲庫中可能會違反許可,並且唯一的辦法是將其部署到公司的存儲庫(如果有一個設置)。

為此,您需要為childA定義pom,將childB指定為依賴項,然后為此運行install:install-file目標。 然后對parent進行相同的操作,並使用childA作為其依賴項。

完成此操作后,您就可以拿走這些物品,並通過GUI輕松地將它們上傳到公司的中央倉庫(Nexus和Artifactory都通過GUI對此進行支持)。

我認為,您可能正在尋找這個

如果在線倉庫中有可用的依賴項,Maven會將所有所需的依賴項加載到本地倉庫中。 如果要安裝自己的項目,請使用配置文件設置反應堆以在其中包含所有需要的模塊,然后在其上運行mvn install -P yourprofile 有關配置文件的更多信息,請參見此處 Afaik無法將項目(包括其依賴項)安裝到本地存儲庫中。

如果您需要將其安裝到本地Maven存儲庫,只需使用

mvn dependency:go-offline

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM