欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

maven?repository詳解

 更新時(shí)間:2023年05月31日 15:45:38   作者:houJINye  
這篇文章主要介紹了maven?repository的相關(guān)知識,本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

保存構(gòu)件的地方即為repository(倉庫)。

倉庫的分類

maven倉庫分為兩類:本地倉庫和遠(yuǎn)程倉庫。

當(dāng)maven根據(jù)pom中定義的坐標(biāo)尋找構(gòu)件時(shí),首先在本地倉庫中尋找,當(dāng)找不到時(shí)再從遠(yuǎn)程倉庫尋找,都找不到時(shí)拋出異常。

maven遠(yuǎn)程倉庫還可進(jìn)一步分類:

本地倉庫

默認(rèn)maven會在c盤創(chuàng)建一個.m2的本地倉庫,如果要修改本地倉庫地址,可以修改setting.xml文件:

<settings>
   <localRepository>D:\64\m2\repository</localRepository>
</settings>

遠(yuǎn)程倉庫中央倉庫

使用解壓軟件打開%M2_HOME%/lib/maven-model-builder-3.1.1.jar,然后訪問路徑org/apache/maven/model/pom-4.0.0.xml,可看到:

<repositories>
   <repository>
     <id>central</id>
     <name>Central Repository</name>
     <url>http://repo.maven.apache.org/maven2</url>
     <layout>default</layout>
     <snapshots>
       <enabled>false</enabled>
     </snapshots>
   </repository>
</repositories>

包含這段配置的文件是所有maven項(xiàng)目都會繼承的超級pom。上述配置中,snapshots子元素enabled的值為false,表示不從中央倉庫下載快照版本的構(gòu)件。

私服

私服是一種特殊的遠(yuǎn)程倉庫,架設(shè)于局域網(wǎng)內(nèi)。當(dāng)maven需要下載構(gòu)件時(shí),先從私服尋找,私服中沒有再從外部倉庫下載。

私服有許多顯著的優(yōu)點(diǎn):

■ 節(jié)省外網(wǎng)帶寬

■ 加速maven構(gòu)件

■ 部署第三方構(gòu)件

■ 提高穩(wěn)定性,增強(qiáng)控制

■ 降低中央倉庫的負(fù)荷

遠(yuǎn)程倉庫配置

如果默認(rèn)的遠(yuǎn)程中央倉庫無法滿足需求,我們可以在pom中添加遠(yuǎn)程倉庫的配置:

<project>
   ...
   <repositories>
     <repository>
       <id>jboss</id>
       <name>JBoss Repository</name>
       <url>http://repository.jboss.com/maven2/</url>
       <releases>
         <enabled>true</enabled>
       </releases>
       <snapshots>
         <enabled>false</enabled>
       </snapshots>
       <layout>default</layout>
     </repository>
   </repositories>
</project>

在repositories元素下,使用repository元素聲明一個或多個遠(yuǎn)程倉庫。上面的xml聲明了一個id為jboss,名稱為JBoss Repository的倉庫。

任何一個倉庫的id是唯一的,maven自帶的中央倉庫使用的id為central,如果其他倉庫的id也為central,那么它將覆蓋自帶的中央倉庫。

url指向倉庫地址,一般該地址都是基于http協(xié)議。releases的enabled值為true,表示開啟JBoss倉庫的發(fā)布版本下載支持,snapshots的enabled值為false,表示關(guān)閉JBoss倉庫的快照版本的下載支持。

release和snapshots元素還可以配置另外兩個子元素:

<snapshots>
   <enabled>true</enabled>
   <updatePolicy>daily</updatePolicy>
   <checksumPolicy>ignore</checksumPolicy>
</snapshots>

updatePolicy元素配置maven從遠(yuǎn)程倉庫檢查更新的頻率,默認(rèn)值為daily。其他可用值有:never —— 從不檢查更新,always —— 每次構(gòu)建都檢查更新,interval:X —— 每隔X分鐘檢查一次更新。用戶也可以使用命令 mvn clean install -U強(qiáng)制更新。

checksumPolicy元素用來配置當(dāng)下載構(gòu)件時(shí),maven檢驗(yàn)和驗(yàn)證失敗時(shí)候的動作,默認(rèn)為warn,即輸出警告信息,ignore則為忽略錯誤。

遠(yuǎn)程倉庫認(rèn)證

如果遠(yuǎn)程倉庫出于安全的考慮設(shè)置了用戶名和密碼,這時(shí)候我們必須在settings.xml中配置:

<settings>
   ...
   <servers>
     <server>
       <id>my-proj</id>
       <username>repo-user</username>
       <password>repo_pwd</password>
     </server>
   </servers>
</settings>

上述xml指定了id為my-proj的遠(yuǎn)程倉庫的用戶名和密碼。

部署至遠(yuǎn)程倉庫

如前所述,私服一大作用是可以部署第三方構(gòu)件。無論是開發(fā)中生成的構(gòu)件還是正式發(fā)布的構(gòu)件,都需要部署到私服中供小組中的其他開發(fā)人員使用,在maven項(xiàng)目pom中配置:

<project>
   ...
   <distributionManagement>
     <snapshotRepository>
       <id>user-snapshot</id>
       <name>User Porject Snapshot</name>
       <url>http://192.168.10.217:8081/nexus/
           content/repositories/snapshots/</url>
       <uniqueVersion>true</uniqueVersion>
     </snapshotRepository>
     <repository>
       <id>user-release</id>
       <name>User Porject Release</name>
       <url>http://192.168.10.217:8081/nexus/
           content/repositories/releases/</url>
     </repository>
   </distributionManagement>
</project>

上述xml明確指定了快照版本和發(fā)行版本的私服id和地址,如前所述,如果私服設(shè)置了賬號密碼,則應(yīng)該在settings.xml中設(shè)置對應(yīng)id的私服賬號和密碼,就本例來說,我們應(yīng)該在settings.xml中設(shè)置:

<settings>
   <servers>
     <server>
       <id>user-release</id>
       <username>deployment</username>
       <password>deployment123</password>
     </server>
     <server>
       <id>user-snapshot</id>
       <username>deployment</username>
       <password>deployment123</password>
     </server>
   </servers>
</settings>

配置正確后,可以運(yùn)行命令mvn clean deploy將項(xiàng)目構(gòu)建輸出的構(gòu)件部署到對應(yīng)的遠(yuǎn)程倉庫。

快照版本

版本元素version中添加SNAPSHOT標(biāo)識,表明該構(gòu)件為快照版本。SNAPSHOT版本的構(gòu)件發(fā)布到私服的過程中,maven會自動加上時(shí)間戳。另一位開發(fā)者從該私服獲取這個構(gòu)件的時(shí)候,maven會自動獲取時(shí)間戳最新的構(gòu)件。

快照版本只應(yīng)該在組織內(nèi)部依賴使用,項(xiàng)目不應(yīng)該依賴于任何組織外部的快照版本依賴。因?yàn)榭煺瞻姹镜牟环€(wěn)定性會對項(xiàng)目造成潛在的危險(xiǎn)。

鏡像

如果倉庫B可以提供倉庫A存儲的所有內(nèi)容,那么就可以認(rèn)為B是A的一個鏡像。maven默認(rèn)的遠(yuǎn)程中央倉庫由于服務(wù)器不在中國,所以訪問速度可能會慢些,這時(shí)候可以再settings.xml中配置一個鏡像:

<settings>
   ...
   <mirrors>
     <mirror>
       <id>maven.net.cn</id>
       <name>one of the central mirrors in china</name>
       <url>http://maven.net.cn/content/groups/public</url>
       <mirrorOf>central</mirrorOf>
     </mirror>
   </mirrors>
</settings>

<mirrorOf>的值為central,表示該配置為中央倉庫的鏡像。任何對于中央倉庫的請求都會本轉(zhuǎn)至該鏡像。

鏡像常用于私服。由于私服可以代理任何外部的公共倉庫,所以可以說私服就是所有倉庫的鏡像。如:

<settings>
   ...
   <mirrors>
     <mirror>
       <id>nexus</id>
       <mirrorOf>*</mirrorOf>
       <url>http://192.168.10.217:8081/nexus/content/groups/public/</url>
     </mirror> 
  </mirrors>
</settings>

<mirrorOf>的值為*號,表示http://192.168.10.217:8081/nexus/content/groups/public/是所有外部倉庫的鏡像。任何對遠(yuǎn)程倉庫的請求都會被轉(zhuǎn)到這個地址。

<mirrorOf>的配置:

■ <mirrorOf>*<mirrorOf>:匹配所有的遠(yuǎn)程倉庫

■ <mirrorOf>external:*<mirrorOf>:匹配所有不在本機(jī)上的遠(yuǎn)程倉庫

■ <mirrorOf>repo1,repo2<mirrorOf>:匹配倉庫repo1和repo2

■ <mirrorOf>*,!repo1<mirrorOf>:匹配除了repo1之外的所有遠(yuǎn)程倉庫

鏡像倉庫完全屏蔽了被鏡像倉庫,當(dāng)鏡像倉庫停止服務(wù)的時(shí)候,maven仍無法訪問被鏡像倉庫,因而將無法下載構(gòu)建。

倉庫搜索服務(wù)

下面列出幾個目前能用的maven坐標(biāo)服務(wù):

1.The Centrl Repository:http://search.maven.org/

2.Maven Repository:http://www.mvnrepository.com/

3.Nexus Repository Manager:https://repository.sonatype.org/#welcome

到此這篇關(guān)于maven repository的文章就介紹到這了,更多相關(guān)maven repository內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java List中數(shù)據(jù)的去重

    Java List中數(shù)據(jù)的去重

    今天小編就為大家分享一篇關(guān)于Java List中數(shù)據(jù)的去重,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • SpringBoot開發(fā)技巧之使用AOP記錄日志示例解析

    SpringBoot開發(fā)技巧之使用AOP記錄日志示例解析

    這篇文章主要為大家介紹了SpringBoot開發(fā)技巧之如何利用AOP記錄日志的示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2021-10-10
  • SpringBoot項(xiàng)目中使用redis緩存的方法步驟

    SpringBoot項(xiàng)目中使用redis緩存的方法步驟

    本篇文章主要介紹了SpringBoot項(xiàng)目中使用redis緩存的方法步驟,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-12-12
  • rocketMQ如何避免消息重復(fù)消費(fèi)問題

    rocketMQ如何避免消息重復(fù)消費(fèi)問題

    這篇文章主要介紹了rocketMQ如何避免消息重復(fù)消費(fèi)問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • RabbitMQ延遲隊(duì)列及消息延遲推送實(shí)現(xiàn)詳解

    RabbitMQ延遲隊(duì)列及消息延遲推送實(shí)現(xiàn)詳解

    這篇文章主要介紹了RabbitMQ延遲隊(duì)列及消息延遲推送實(shí)現(xiàn)詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12
  • 深入探究Java線程的狀態(tài)與生命周期

    深入探究Java線程的狀態(tài)與生命周期

    在java中,任何對象都要有生命周期,線程也不例外,它也有自己的生命周期。線程的整個生命周期可以分為5個階段,分別是新建狀態(tài)、就緒狀態(tài)、運(yùn)行狀態(tài)、阻塞狀態(tài)和死亡狀態(tài)
    2022-04-04
  • java ArrayList.remove()的三種錯誤用法以及六種正確用法詳解

    java ArrayList.remove()的三種錯誤用法以及六種正確用法詳解

    這篇文章主要介紹了java ArrayList.remove()的三種錯誤用法以及六種正確用法詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • 詳解使用Java原生代理實(shí)現(xiàn)AOP實(shí)例

    詳解使用Java原生代理實(shí)現(xiàn)AOP實(shí)例

    本篇文章主要介紹了詳解使用Java原生代理實(shí)現(xiàn)AOP實(shí)例,具有一定的參考價(jià)值,有興趣的可以了解一下。
    2017-01-01
  • Flutter驗(yàn)證碼輸入框的2種方法實(shí)現(xiàn)

    Flutter驗(yàn)證碼輸入框的2種方法實(shí)現(xiàn)

    本文主要介紹了Flutter驗(yàn)證碼輸入框的2種方法實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • 關(guān)于Filter中獲取請求體body后再次讀取的問題

    關(guān)于Filter中獲取請求體body后再次讀取的問題

    這篇文章主要介紹了關(guān)于Filter中獲取請求體body后再次讀取的問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03

最新評論