1. 程式人生 > 程式設計 >maven配置多個映象的實現方法

maven配置多個映象的實現方法

問題場景

1、國內訪問maven預設遠端中央映象特別慢

2、用阿里的映象替代遠端中央映象

3、大部分jar包都可以在阿里映象中找到,部分jar包在阿里映象中沒有,需要單獨配置映象

解決方案

settings.xml 中可以使用變數,可以嘗試使用變數解決:

 <mirrors>
    <!-- 阿里雲倉庫 -->
    <mirror>
      <id>alimaven</id>
      <mirrorOf>central</mirrorOf>
      <name>aliyun maven</name>
      <url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
    </mirror>
  
    <!-- 中央倉庫1 -->
    <mirror>
      <id>repo1</id>
      <mirrorOf>central</mirrorOf>
      <name>Human Readable Name for this Mirror.</name>
      <url>http://repo1.maven.org/maven2/</url>
    </mirror>
  
    <!-- 中央倉庫2 -->
    <mirror>
      <id>repo2</id>
      <mirrorOf>central</mirrorOf>
      <name>Human Readable Name for this Mirror.</name>
      <url>http://repo2.maven.org/maven2/</url>
    </mirror>
 </mirrors>

在maven的配置檔案setting.xml大里面有個mirrors節點,用來配置映象URL。mirrors可以配置多個mirror,每個mirror有id,name,url,mirrorOf屬性,

id是唯一標識一個mirror,name節點名,url是官方的庫地址,mirrorOf代表了一個映象的替代位置,例如central就表示代替官方的中央庫

雖然mirrors可以配置多個子節點,但是它只會使用其中的一個節點,即預設情況下配置多個mirror的情況下,只有第一個生效,只有當前一個mirror

無法連線的時候,才會去找後一個;而我們想要的效果是:當a.jar在第一個mirror中不存在的時候,maven會去第二個mirror中查詢下載,但是maven不會這樣做!

注意:

  配置多個mirror時,mirrorOf不能配置" * "," * " 的意思就是(根據mirrorOf和repository的id)匹配所有的倉庫(repository),

這樣就是說如果你需要某個jar,他會從映象地址去下載這個jar。不管你配置了多少個庫,即使這些庫的地址不一樣,仍然會從映象地址訪問

到此這篇關於maven配置多個映象的實現方法的文章就介紹到這了,更多相關maven配置多個映象內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!