2017-02-23 61 views
0

場景: 新的企業策略禁止使用公共存儲庫。對於每個使用的依賴關係(這是很多的),我們必須向devOps團隊提供工件組,id,版本以及它來自哪個存儲庫。在maven中找到每個依賴項的原始存儲庫

我們在我們的代碼庫上使用了多個外部存儲庫。由於所有工件現在都在本地存儲庫中,因此我們不知道它們來自哪裏。

我能做些什麼:

我可以使用 MVN依賴性:清單-DoutputAbsoluteArtifactFilename =真-DprependGroupId 每個項目獲得神器組ID,版本。

和MVN依賴性:列表庫獲得該項目

使用的存儲庫缺少了什麼:

知道哪個神器從哪個庫。

在此先感謝

回答

0

恐怕在maven中這是不可能的。在maven 3.0.x之前,maven甚至沒有跟蹤遠程存儲庫。在Maven 3.0.x之後,它轉移到了eclipse以太網。 Eclipse以太網爲每個存儲庫信息的存儲庫創建_remote.repositories文件。它包含在settings.xml文件中定義的存儲庫標識。你可以,

  1. 刪除您當地的回購內容。
  2. 運行下面的命令,

    find . -name _remote.repositories -exec grep "^[^#;]" {} \; > repo_info.txt 
    

這將ATLEAST給你的映射。

+0

**很好的答案**。謝謝。根據每個依賴項的組ID,我最終手動確定了回購站(像700,花了一些時間> _ <)。如果開發工具令人討厭,我會繼續這樣做。 –

0

列出您使用的所有外部存儲庫。此外,獲取所有groupId,artifactId,版本(通過dependency:list每個項目或通過掃描本地存儲庫)的列表。現在,對於每個依賴項,如果它們包含此依賴項,請通過REST詢問外部存儲庫。

如果你從MavenCentral開始,你很有可能在第一次嘗試中找到你的依賴。

+0

非常感謝。如果devOps只有一些依賴關係存在問題,我一定會採用這種方式。你知道如何製作REST查詢嗎?我有curl和wget,但其他工具也可以。 –

相關問題