簡體   English   中英

Maven 依賴項限制為私有存儲庫

[英]Maven dependencies restrict to private repositories

我們有一個公司/私人 maven 注冊表(“artifactory”),我們的項目使用它來解決項目的依賴關系。

這個私有的 Maven 注冊表還代理 Maven Central 的公共依賴項,這意味着內部注冊表首先沒有解析的依賴項。

我們希望避免供應鏈攻擊,即有人使用 Maven Central 中的相同標識符重載我們在私有/公司 Maven 注冊表中使用的自定義依賴項。 比方說,即在 Maven Central 中發布一個惡意依賴工件,其groupIdartifactId與內部artifactId相同,但version更高 - 然后它會優先並在我們的系統中造成嚴重破壞。

在 npm 中,有一種機制允許“標記”對某個私有注冊表的依賴項(通過scope )。

Maven 中是否有類似的機制,允許某些依賴項僅從內部工件解析,並防止它從 Maven Central 解析?

我在想像artifactory這樣的artifactory

<dependency>
  <groupId>org.acme</groupId>
  <artifactId>supersecret</artifactId>
  <version>3.141</version>
  <artifactory>internal_corporate_artifactory_name</artifactory> <!-- as described in settings.xml or Super-Pom -->
</dependency>

你可以用不同的方式解決這個問題。

首先,您在settings.xml定義了一個<mirror> ,以便所有請求都轉到您的 Artifactory。

在 Artifactory 中,您為要訪問的所有外部存儲庫定義一個虛擬存儲庫(它將是您用作 mirro 的通用虛擬存儲庫的一部分)。

現在對於該虛擬存儲庫,您可以定義“排除模式”。 這允許您告訴 Artifactory 不要針對外部存儲庫解析 groupId com.yourcompany

添加到 J Fabian Meier 的回答-

在鏡像 Maven Central 的遠程存儲庫上使用排除模式,例如排除與您公司的組 ID 匹配的工件。

可以在以下鏈接中找到更多信息:

暫無
暫無

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

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