1. 程式人生 > >《Maven官方文件》使用映象倉庫

《Maven官方文件》使用映象倉庫

原文連結  譯者:carvendy

使用映象倉庫

在你指定的倉庫中選擇你想下載的確定工具,利潤依賴或者maven外掛。倉庫可以什麼在專案裡,意味著如果你有一個自定義倉庫,你將分析你的專案和容易地獲取正確的配置。可是,你可能想使用一些可替換的映象來作為特殊倉庫而不改變專案檔案。

使用映象的一些原因:

  • 這是一個在網路上同步的映象,位置很近也很快。
  • 你想替換掉一個特別的倉庫使用你自己的網路倉庫將會有更好的控制權
  • 你想使用倉庫管理來提供本地快取映象,需要使用它的URL。

為了配置一個倉庫的映象,你提供你的配置檔案(${user.home}/.m2/settings.xml),給一個新的倉庫和它有自己的id

url,和指定的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將不會狙擊映象但是簡單地使用第一個匹配的。如果你想提供幾個倉庫組成的倉庫,使用 倉庫管理 代替。

在所知道的映象中可用的在倉庫元資料中。映象可能有不同的內容和我們不以任何方式支援它。

使用單倉庫

你可以指定Maven是一個單倉庫如果映象作用於所有倉庫。這個倉庫必須包含所有渴望的工件和被代理的到其他倉庫的請求。這些設定是最好用的當使用網路公司倉庫來管理Maven倉庫而使用額外的代理請求。

為了完成這個,設定mirrorOf為==*==

注意: 這個特殊只有在 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>

先進的倉庫指定

單倉庫映象可以處理多個倉庫,當你使用多個倉庫管理的時候。

  • 這裡有一個Maven 2.0.9的。
  • * 匹配所有倉庫
  • external:* 匹配所有倉庫期望使用本地或者檔案基礎倉庫。這是使用結合一個倉庫管理當你想排除定義為整合測試的重定向倉庫。
  • 多倉庫可能指定使用逗號作為分隔符
  • 一個感嘆標記可能使用結合上面的萬用字元來排除倉庫id

萬用字元位置使用逗號分隔倉庫列表這不是重要的,正如萬用字元延緩處理,明確的包含和排除停止程序,明確任何萬用字元。

當你使用先進的語法和配置多映象,記住他們宣告順序問題。當Maven在找一些倉庫的映象,它首先會檢查映象的==<mirrirOf>明確地匹配倉庫識別符號。如果沒有匹配,Maven會使用第一個映象宣告並按照上面匹配規則(如果有的話)。因此,你可能影響到匹配順序受在setting.xml==中的定義順序改變而影響。

注意:這個特性只有在Maven 2.0.9以上可用。

例子:

  • * = 任何
  • external:* 不在本地和不是基於檔案的一切
  • repo,repo1 = repo或repo1
  • *,!repo1 除了repo1的一切
<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>

建立你自己的映象

中心倉庫的大小穩步增長,為了儲存我們的頻寬和你的時間,映象整個中心倉庫是不允許的。(你這樣做將自動禁止)除此之外,我們建議你安裝一個倉庫管理作為一個代理。

如果你準備做一個官方映象,在你的位置聯絡我們MVNCENTRAL,問我們將會幫助你安裝。