最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Maven多倉(cāng)庫(kù)多鏡像源配置過(guò)程

 更新時(shí)間:2025年11月14日 08:56:21   作者:ideal-cs  
本文詳細(xì)介紹了Maven中的倉(cāng)庫(kù)(Repository)和鏡像(Mirror)配置,包括它們的區(qū)別、分類、配置位置、注意事項(xiàng)以及協(xié)同工作流程,通過(guò)多倉(cāng)庫(kù)配置,可以解決依賴來(lái)源多樣性問(wèn)題;通過(guò)多鏡像配置,可以提高下載效率并統(tǒng)一管理

一、核心概念:倉(cāng)庫(kù)(Repository)與鏡像(Mirror)

在講解配置前,需先明確兩個(gè)核心概念的區(qū)別:

二、多倉(cāng)庫(kù)配置:原理與方式

Maven 支持配置多個(gè)遠(yuǎn)程倉(cāng)庫(kù),用于獲取不同來(lái)源的依賴(例如:中央倉(cāng)庫(kù)沒(méi)有的依賴,可能在 Spring 倉(cāng)庫(kù)、Google 倉(cāng)庫(kù)中存在)。

1. 倉(cāng)庫(kù)的分類

(1)本地倉(cāng)庫(kù)

默認(rèn)位于~/.m2/repository ,所有下載的依賴都會(huì)緩存到這里,優(yōu)先從本地倉(cāng)庫(kù)獲取依賴。

(2)遠(yuǎn)程倉(cāng)庫(kù):三類

  • 中央倉(cāng)庫(kù)(Maven 默認(rèn)內(nèi)置): https://repo1.maven.org/maven2/ ,存儲(chǔ)大部分開源依賴。
  • 第三方倉(cāng)庫(kù): 例如,Spring 倉(cāng)庫(kù)(https://repo.spring.io/release/)、Google 倉(cāng)庫(kù)(https://maven.google.com/)等,存儲(chǔ)特定框架的依賴。
  • 私有倉(cāng)庫(kù): 企業(yè)內(nèi)部搭建的倉(cāng)庫(kù)(如 Nexus、Artifactory),存儲(chǔ)內(nèi)部構(gòu)件或代理外部倉(cāng)庫(kù)。

2. 多倉(cāng)庫(kù)的配置位置

遠(yuǎn)程倉(cāng)庫(kù)的配置有兩個(gè)級(jí)別,優(yōu)先級(jí)不同:

3. 多倉(cāng)庫(kù)配置示例

(1)在pom.xml中配置項(xiàng)目級(jí)倉(cāng)庫(kù)

<project>
  <!-- 其他配置 -->
  <repositories>
    <!-- 中央倉(cāng)庫(kù)(Maven默認(rèn)已內(nèi)置,可省略) -->
    <repository>
      <id>central</id>
      <name>Maven Central Repository</name>
      <url>https://repo1.maven.org/maven2/</url>
      <releases>
        <enabled>true</enabled> <!-- 允許下載release版本 -->
      </releases>
      <snapshots>
        <enabled>false</enabled> <!-- 禁止下載snapshot版本(不穩(wěn)定) -->
      </snapshots>
    </repository>

    <!-- Spring倉(cāng)庫(kù)(獲取Spring相關(guān)依賴) -->
    <repository>
      <id>spring-releases</id>
      <name>Spring Releases Repository</name>
      <url>https://repo.spring.io/release/</url>
      <releases><enabled>true</enabled></releases>
      <snapshots><enabled>false</enabled></snapshots>
    </repository>

    <!-- Google倉(cāng)庫(kù)(獲取Android相關(guān)依賴) -->
    <repository>
      <id>google</id>
      <name>Google Repository</name>
      <url>https://maven.google.com/</url>
      <releases><enabled>true</enabled></releases>
      <snapshots><enabled>false</enabled></snapshots>
    </repository>
  </repositories>
</project>

(2)在maven安裝目錄/conf/settings.xml中配置全局級(jí)倉(cāng)庫(kù)

<settings>
  <!-- 其他配置 -->
  <profiles>
    <profile>
      <id>custom-repos</id>
      <repositories>
        <!-- 私有倉(cāng)庫(kù)(企業(yè)內(nèi)部依賴) -->
        <repository>
          <id>company-private</id>
          <url>http://nexus.company.com/repository/maven-public/</url>
          <releases><enabled>true</enabled></releases>
          <snapshots><enabled>true</enabled></snapshots>
        </repository>
        <!-- 其他共用倉(cāng)庫(kù) -->
      </repositories>
    </profile>
  </profiles>

  <!-- 激活上述profile,使其生效 -->
  <activeProfiles>
    <activeProfile>custom-repos</activeProfile>
  </activeProfiles>
</settings>

4. 多倉(cāng)庫(kù)配置注意事項(xiàng)

  • 倉(cāng)庫(kù) ID 唯一性: 每個(gè)倉(cāng)庫(kù)的id必須唯一(Maven 通過(guò)id識(shí)別倉(cāng)庫(kù)),否則會(huì)導(dǎo)致沖突。
  • releases/snapshots開關(guān): 通過(guò)enabled控制是否允許從該倉(cāng)庫(kù)下載正式版 / 快照版依賴(快照版不穩(wěn)定,生產(chǎn)環(huán)境通常關(guān)閉)。
  • 優(yōu)先級(jí): pom.xml中的倉(cāng)庫(kù)優(yōu)先級(jí)高于settings.xml,即項(xiàng)目級(jí)配置會(huì)覆蓋全局配置(如需全局生效,建議配置在settings.xml)。

三、多鏡像源配置:原理與規(guī)則

鏡像的核心作用是 “替代遠(yuǎn)程倉(cāng)庫(kù)”,當(dāng)配置多個(gè)鏡像時(shí),需通過(guò)mirrorOf屬性明確每個(gè)鏡像替代哪些倉(cāng)庫(kù),避免沖突。

1. 鏡像的配置位置

鏡像只能在settings.xml的<mirrors>標(biāo)簽中配置(全局生效),無(wú)法在pom.xml中配置(保證鏡像的全局統(tǒng)一性)。

2. 多鏡像配置的核心:mirrorOf規(guī)則

mirrorOf是鏡像配置的靈魂,用于指定 “當(dāng)前鏡像替代哪些倉(cāng)庫(kù)”,其值通過(guò)倉(cāng)庫(kù)的id匹配(倉(cāng)庫(kù)id在<repository>中定義)。常見規(guī)則如下:

3. 多鏡像配置示例

假設(shè)需求:用阿里云加速中央倉(cāng)庫(kù),用華為云加速 Spring 倉(cāng)庫(kù),同時(shí)保留私有倉(cāng)庫(kù)直接訪問(wèn)。

<settings>
  <!-- 其他配置 -->
  <mirrors>
    <!-- 1. 阿里云鏡像:替代中央倉(cāng)庫(kù)(id=central) -->
    <mirror>
      <id>aliyun-central</id>
      <name>Aliyun Mirror for Central</name>
      <url>https://maven.aliyun.com/repository/central</url>
      <mirrorOf>central</mirrorOf> <!-- 僅替代中央倉(cāng)庫(kù) -->
    </mirror>

    <!-- 2. 華為云鏡像:替代Spring倉(cāng)庫(kù)(id=spring-releases) -->
    <mirror>
      <id>huawei-spring</id>
      <name>Huawei Mirror for Spring</name>
      <url>https://repo.huaweicloud.com/repository/spring/</url>
      <mirrorOf>spring-releases</mirrorOf> <!-- 僅替代Spring倉(cāng)庫(kù) -->
    </mirror>

    <!-- 3. 全局鏡像:替代所有倉(cāng)庫(kù),但排除私有倉(cāng)庫(kù)(id=company-private) -->
    <mirror>
      <id>global-mirror</id>
      <name>Global Mirror (exclude private)</name>
      <url>https://repo.example.com/maven/</url>
      <mirrorOf>*,!company-private</mirrorOf> <!-- 排除私有倉(cāng)庫(kù) -->
    </mirror>
  </mirrors>
</settings>

4. 多鏡像的匹配優(yōu)先級(jí)

Maven 按<mirrors>中鏡像的配置順序匹配,一旦找到第一個(gè)符合mirrorOf規(guī)則的鏡像,就會(huì)使用該鏡像,后續(xù)鏡像不再生效。因此:

  • 精確匹配的鏡像(如mirrorOf=central)應(yīng)放在模糊匹配鏡像(如mirrorOf=*)前面,避免被覆蓋。
  • 優(yōu)先級(jí)高的鏡像(如速度快的國(guó)內(nèi)鏡像)應(yīng)放在前面。

四、多倉(cāng)庫(kù)與多鏡像的協(xié)同工作流程

當(dāng) Maven 需要下載一個(gè)依賴時(shí),整體流程如下:

(1)檢查本地倉(cāng)庫(kù):如果依賴已存在,直接使用,流程結(jié)束。

(2)查找遠(yuǎn)程倉(cāng)庫(kù):根據(jù)pom.xml或settings.xml中配置的遠(yuǎn)程倉(cāng)庫(kù)列表,確定需要訪問(wèn)的倉(cāng)庫(kù)(按配置順序)。

(3)匹配鏡像:對(duì)每個(gè)遠(yuǎn)程倉(cāng)庫(kù),檢查是否有鏡像的mirrorOf匹配該倉(cāng)庫(kù)的id:

  • 若有匹配的鏡像,使用鏡像地址下載依賴。
  • 若沒(méi)有匹配的鏡像,直接訪問(wèn)原倉(cāng)庫(kù)地址下載。

(4)緩存到本地倉(cāng)庫(kù)(僅只有一個(gè)):下載成功后,將依賴緩存到本地倉(cāng)庫(kù),供后續(xù)使用

五、總結(jié)

(1)多倉(cāng)庫(kù)解決 “依賴來(lái)源多樣性” 問(wèn)題,通過(guò)配置多個(gè)遠(yuǎn)程倉(cāng)庫(kù)獲取不同構(gòu)件,可在pom.xml(項(xiàng)目級(jí))或settings.xml(全局級(jí))中配置。

(2)多鏡像解決 “下載效率與統(tǒng)一管理” 問(wèn)題,通過(guò)mirrorOf規(guī)則指定替代的倉(cāng)庫(kù),僅在settings.xml中配置。

(3)核心是理解mirrorOf的匹配規(guī)則和鏡像與倉(cāng)庫(kù)的協(xié)同流程,避免鏡像覆蓋必要的倉(cāng)庫(kù),確保依賴能正常下載。

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Spring Boot 2.x基礎(chǔ)教程之使用@Scheduled實(shí)現(xiàn)定時(shí)任務(wù)的方法

    Spring Boot 2.x基礎(chǔ)教程之使用@Scheduled實(shí)現(xiàn)定時(shí)任務(wù)的方法

    在Spring Boot中編寫定時(shí)任務(wù)是非常簡(jiǎn)單的事,下面通過(guò)實(shí)例介紹如何在Spring Boot中創(chuàng)建定時(shí)任務(wù),實(shí)現(xiàn)每過(guò)5秒輸出一個(gè)當(dāng)前時(shí)間,感興趣的朋友跟隨小編一起看看吧
    2021-07-07
  • Java使用LinkedHashMap進(jìn)行分?jǐn)?shù)排序

    Java使用LinkedHashMap進(jìn)行分?jǐn)?shù)排序

    這篇文章主要介紹了Java使用LinkedHashMap進(jìn)行分?jǐn)?shù)排序的相關(guān)代碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • Java排序的那些事之sort方法的使用詳解

    Java排序的那些事之sort方法的使用詳解

    sort方法用于對(duì)數(shù)組的元素進(jìn)行排序。排序順序可以是字母或數(shù)字,并按升序或降序。默認(rèn)排序順序?yàn)榘醋帜干?,?dāng)數(shù)字是按字母順序排列時(shí)"40"將排在"5"前面。使用數(shù)字排序,你必須通過(guò)一個(gè)函數(shù)作為參數(shù)來(lái)調(diào)用。這些說(shuō)起來(lái)可能很難理解,你可以通過(guò)本篇文章進(jìn)一步了解它
    2021-09-09
  • Java中方法重寫與重載的區(qū)別

    Java中方法重寫與重載的區(qū)別

    大家好,本篇文章主要講的是Java中方法重寫與重載的區(qū)別,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下
    2022-01-01
  • 修改jvm-sandbox源碼導(dǎo)致線程安全分析

    修改jvm-sandbox源碼導(dǎo)致線程安全分析

    這篇文章主要為大家介紹了修改jvm-sandbox源碼導(dǎo)致線程安全分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-06-06
  • java線程池參數(shù)舉例詳解(附詳細(xì)代碼)

    java線程池參數(shù)舉例詳解(附詳細(xì)代碼)

    這篇文章主要介紹了Java線程池的工作原理、構(gòu)造方法和關(guān)鍵參數(shù),它還提供了線程池的工作流程、常用線程池實(shí)現(xiàn)及參數(shù)優(yōu)化建議,幫助開發(fā)者更好地管理和優(yōu)化線程池,需要的朋友可以參考下
    2025-02-02
  • mybatis(mybatis-plus)映射文件(XML文件)中特殊字符轉(zhuǎn)義的實(shí)現(xiàn)

    mybatis(mybatis-plus)映射文件(XML文件)中特殊字符轉(zhuǎn)義的實(shí)現(xiàn)

    XML 文件在解析時(shí)會(huì)將五種特殊字符進(jìn)行轉(zhuǎn)義,本文主要介紹了mybatis(mybatis-plus)映射文件(XML文件)中特殊字符轉(zhuǎn)義的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-12-12
  • 高內(nèi)聚低耦合原則_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    高內(nèi)聚低耦合原則_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    耦合度就是某模塊(類)與其它模塊(類)之間的關(guān)聯(lián)、感知和依賴的程度,是衡量代碼獨(dú)立性的一個(gè)指標(biāo),也是軟件工程設(shè)計(jì)及編碼質(zhì)量評(píng)價(jià)的一個(gè)標(biāo)準(zhǔn)
    2017-08-08
  • 圖文詳解JAVA實(shí)現(xiàn)哈夫曼樹

    圖文詳解JAVA實(shí)現(xiàn)哈夫曼樹

    所謂哈夫曼樹就是要求最小加權(quán)路徑長(zhǎng)度,這是什么意思呢?簡(jiǎn)而言之,就是要所有的節(jié)點(diǎn)對(duì)應(yīng)的路徑長(zhǎng)度(高度-1)乘以該節(jié)點(diǎn)的權(quán)值,然后保證這些結(jié)果之和最小。下面這篇文章就給大家詳細(xì)介紹
    2016-08-08
  • 淺談SpringMVC之視圖解析器(ViewResolver)

    淺談SpringMVC之視圖解析器(ViewResolver)

    本篇文章主要介紹了淺談SpringMVC之視圖解析器(ViewResolver),具有一定的參考價(jià)值,有興趣的可以了解一下
    2017-08-08

最新評(píng)論

宁都县| 沭阳县| 章丘市| 山阳县| 台中市| 怀安县| 南平市| 沭阳县| 新建县| 海宁市| 抚州市| 汝城县| 罗源县| 鄱阳县| 深州市| 昌都县| 临夏县| 龙游县| 陵水| 吉林省| 黄陵县| 鱼台县| 江北区| 肃宁县| 惠水县| 乾安县| 衢州市| 武汉市| 呼和浩特市| 沂源县| 彰化县| 正蓝旗| 汤原县| 漳州市| 铜川市| 江北区| 五莲县| 盈江县| 海南省| 微博| 庄河市|