日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Maven学习之 仓库镜像

發布時間:2023/12/10 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Maven学习之 仓库镜像 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

使用倉庫鏡像

倉庫可以聲明在項目中,但有時,你可能想要使用某個倉庫的鏡像,而不去修改項目文件。

使用鏡像的原因:

  • 有一個同步鏡像,且速度更快。
  • 想使用你自己控制的內部倉庫。
  • 想運行repository manager來提供一個本地的緩存(鏡像),然后使用該緩存的URL。

為了配置給定倉庫的鏡像,你需要在 ${user.home}/.m2/settings.xml 中提供該新倉庫的 idurl,并指定 mirrorOf 的值 -- 就是你想鏡像的倉庫的ID

例如,Maven 中央美國倉庫的ID默認是central,所以,想使用歐洲中央倉庫的話,你可以這樣配置:

<settings>...<mirrors><mirror><id>UK</id><name>UK Central</name><url>http://uk.maven.org/maven2</url><mirrorOf>central</mirrorOf></mirror></mirrors>... </settings>

注意,對于給定的某個倉庫來說,最多只能有一個鏡像。就是說,不管有幾個鏡像,其 <mirrorOf>的值不能重復! Maven不會聚集鏡像,而是會簡單的揀出第一個符合的。 如果你想提供由多個倉庫組成的view,請使用一個 repository manager。

The settings descriptor documentation can be found on the Maven Local Settings Model Website.

注意:官方Maven 2 倉庫是http://repo.maven.apache.org/maven2 位于美國,或者 http://uk.maven.org/maven2 位于英國。

Repository Metadata 中有一個已知的鏡像列表。這些鏡像的內容可能不盡相同,我們(maven官方)也不會以任何形式支持它們。

?

使用一個單獨的倉庫

你可以強制Maven使用一個單獨的倉庫 -- 通過讓該倉庫鏡像所有的倉庫請求。該倉庫必須包含所有需要的artifacts,或者能夠代理請求到其他倉庫。 當使用一個內部公司倉庫時,這很有用,可以使用Maven Repository Manager來代理外部的請求。

只需要將 <mirrorOf>的值設為 * 即可!

注意:該功能僅支持Maven 2.0.5+。

<settings>...<mirrors><mirror><id>internal-repository</id><name>Maven Repository Manager running on repo.mycompany.com</name><url>http://repo.mycompany.com/proxy</url><mirrorOf>*</mirrorOf></mirror></mirrors>... </settings>

?

高級鏡像指南

當配合repository manager時,一個單一的鏡像可以處理多個倉庫。

該語法自 Maven 2.0.9 起:

  • *? 匹配所有的倉庫id。
  • external:*? 匹配所有的倉庫,除了那些使用localhost 或 基于文件的倉庫。當你想排除重定向倉庫(用于集成測試)時,可以配合repository manager來使用。
  • ,? 多個倉庫可以使用逗號來拼接。
  • !? 可以配合上面提到的某個通配符使用,以排除某個倉庫id。

在逗號間隔的倉庫標識符列表中,通配符的位置不如 。。。(長句,懶得翻譯) 重要。

The position of wildcards within a comma separated list of repository identifiers is not important as the wildcards defer to further processing and explicit includes or excludes stop the processing, overruling any wildcard match.

當你使用高級語法,并配置多個鏡像時,請記住 它們的聲明順序不是無所謂的。當Maven查找某個倉庫的鏡像時,它會先檢查<mirrorOf>最匹配的鏡像。如果沒有直接匹配的,Maven會使用第一個聲明的鏡像--按照上面提到的規則(如果有的話)。

例子:

  • * 代表任意的。
  • external:* 代表任意不在localhost上的,或不是基于文件的。
  • repo,repo1 代表repo 或 repo1。
  • *,!repo1 代表任意的,但除了repo1 。

注意,該功能僅支持 Maven 2.0.9+。

<settings>...<mirrors><mirror><id>internal-repository</id><name>Maven Repository Manager running on repo.mycompany.com</name><url>http://repo.mycompany.com/proxy</url><mirrorOf>external:*,!foo</mirrorOf></mirror><mirror><id>foo-repository</id><name>Foo</name><url>http://repo.mycompany.com/foo</url><mirrorOf>foo</mirrorOf></mirror></mirrors>... </settings>

?

創建你自己的鏡像

中央倉庫的大小是穩步增長的。 為了節省我們的帶寬和你的時間,鏡像整個中央倉庫是不被允許的。(這樣做會被自動禁止) 相反,我們建議你設置一個repository manager作為代理。

如果你想成為一個官方鏡像,請聯系我們。

?

?

?

?

?

官方文檔鏈接:

http://maven.apache.org/guides/mini/guide-mirror-settings.html

總結

以上是生活随笔為你收集整理的Maven学习之 仓库镜像的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。