如果我錯了,請更正我的錯誤,但鏡像用於將所有流量重定向到特定存儲庫URL並阻止其他所有內容(包括Maven中央庫)。什麼是Maven settings.xml文件中的鏡像?
現在如果我有一個鏡像到http://a.com:8081
和一個存儲庫到http://b.com:8081
。第二個URL會被使用嗎?我認爲答案是否定的。你可以有多個鏡子嗎?
如果我錯了,請更正我的錯誤,但鏡像用於將所有流量重定向到特定存儲庫URL並阻止其他所有內容(包括Maven中央庫)。什麼是Maven settings.xml文件中的鏡像?
現在如果我有一個鏡像到http://a.com:8081
和一個存儲庫到http://b.com:8081
。第二個URL會被使用嗎?我認爲答案是否定的。你可以有多個鏡子嗎?
如果我錯了,請更正我的錯誤,但鏡像用於將所有流量重定向到特定存儲庫URL並阻止其他所有內容(包括Maven中央回購)。
這不完全正確。 Maven通過在定義的repositories內搜索它們來下載文物。這些存儲庫在項目的POM或Maven設置中定義。但是,正如在Mirror documentation規定:
但是,您可能想使用另一種鏡特定倉庫,但不會改變項目文件。
讓我們從文檔的例子和評論:
<mirrors>
<mirror>
<id>UK</id>
<name>UK Central</name>
<url>http://uk.maven.org/maven2</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
這定義了一個鏡子,將使用時Maven會想獲取來自中央Maven的依賴。假設您有2個當前的存儲庫,它們是Maven Central和自定義的倉庫A.以下情況會發生:
repo1.maven.org
上擊中Maven Central。相反,它將從uk.maven.org
中獲取它,這是在鏡像配置元素中定義的URL。如本例所示,鏡像僅適用於某些存儲庫,這些存儲庫使用<mirrorOf>
配置元素定義。在前一種情況下,我們有<mirrorOf>central</mirrorOf>
這意味着「鏡像Maven中心」。此元素can have various values,和文檔gives examples:
例子:
*
=一切external:*
=一切不是本地主機上,而不是基於文件的。repo,repo1
=回購或repo1*,!repo1
=一切,除了repo1:
現在,如果我有一面鏡子
http://a.com:8081
和存儲庫http://b.com:8081
。第二個URL會被使用嗎?我假設答案是否定的。
以上顯示答案並非嚴格否定。當Maven嘗試從它鏡像的存儲庫中的一個存儲庫中獲取依賴關係時,將使用到http://a.com:8081
的鏡像。如果它確實將存儲庫鏡像到http://b.com:8081
,則不會請求http://b.com:8081
(它們將被重定向到http://a.com:8081
);但如果沒有,Maven將像往常一樣繼續從http://b.com:8081
獲取依賴關係。
你可以有多個鏡像?
是的,你可以。