Maven學習3(中央倉庫)

Maven項目在運行的時候,會首先找本地倉庫是否有須要的jar,若是沒有則去調用遠程倉庫。服務器

解讀Maven在倉庫中的存儲路徑:網絡

1.基於groupId準備路徑,將句點分隔符轉成路徑分隔符,就是將  "."  轉換成 "/" ; example: org.testng --->org/testng maven

2.基於artifactId準備路徑,將artifactId鏈接到後面:org/testng/testng 佈局

3.使用version準備路徑,將version鏈接到後面:org/testng/testng/5.8 網站

4.將artifactId於version以分隔符連字號鏈接到後面:org/testng/testng/5.8/tesng-5.8 url

5.判斷若是構件有classifier,就要在 第4項 後增長 分隔符連字號 再加上 classifier,org/testng/testng/5.8/tesng-5.8-jdk5 spa

6.檢查構件的extension,若是extension存在,則加上句點分隔符和extension,而extension是由packing決定的,org/testng/testng/5.8/tesng-5.8-jdk5.jarcode

maven 倉庫 示意圖orm

配置遠程倉庫(能夠在項目的pom.xml中配置  也能夠在setting.xml中配置)server

當有些構件在中央倉庫不存在,必須從其餘倉庫獲取的時候,咱們須要在maven項目的pom.xml中 配置一個能夠獲取到該構件的遠程倉庫。

配置過程以下:

<!--在pom中配置遠程倉庫的地址-->
    <repositories>
        <repository>
            <!--倉庫id ,必須惟一,不然覆蓋原有的倉庫-->
            <id>jboss</id>
            <!--倉庫名-->
            <name>JBoss repository</name>
            <!--遠程倉庫地址-->
            <url>http://repository.jboss.com/maven2/</url>
            <releases>
                <!--表示容許下載使用發佈版本-->
                <enabled>true</enabled>
                <!--設置從遠程更新的頻率,默認是daily -->
                <!--三種取值   alway 老是更新   never從不更新 interval:X   X表示每隔X分鐘 -->
                <updatePolicy>daily</updatePolicy>
                <!--用來配置maven檢查校驗和文件的策略-->
                <!--當構建部署到本地倉庫的時候 會同時部署對應的校驗和文件-->
                <!--有三種取值   ignore 忽略校驗  fail 校驗失敗 中止構建  warm 輸出警告信息-->
                <checksumPolicy>ignore</checksumPolicy>
            </releases>
            <!--使用默認的佈局-->
            <layout>default</layout>
            <!--是否容許使用快照版本-->
            <snapshots>
                <enabled>false</enabled>
                <!--設置從遠程更新的頻率,默認是daily -->
                <!--三種取值   alway 老是更新   never從不更新 interval:X   X表示每隔X分鐘 -->
                <updatePolicy>daily</updatePolicy>
                <!--用來配置maven檢查校驗和文件的策略-->
                <!--當構建部署到本地倉庫的時候 會同時部署對應的校驗和文件-->
                <!--有三種取值   ignore 忽略校驗  fail 校驗失敗 中止構建  warm 輸出警告信息-->
                <checksumPolicy>ignore</checksumPolicy>
            </snapshots>
        </repository>
    </repositories>

遠程倉庫的認證  (在setting.xml中配置)

遠程倉庫的認證不能像遠程倉庫的配置同樣在pom.xml中進行,須要在setting.xml中配置,由於該項目極可能是你們公用的一個maven項目,而本地倉庫是放在本地屬於我的。

遠程倉庫的配置以下:

<servers>
<server>
<!--id名字必需要與pom中配置的遠程倉庫id同樣,這樣才能夠對立起來-->
<id>jboss</id>
<!--用戶名-->
<username>admin</username>
<!--密碼-->
<password>1234@qwer</password>
</server>
<servers>

部署項目到遠程倉庫

咱們能夠把本身的項目經過maven部署到遠程倉庫,供本身的同事使用

部署到遠程服務器 須要在pom中進行以下配置:

<!--部署到遠程倉庫-->
    <distributionManagement>
        <!--發佈版本構建的倉庫-->
        <repository>
            <!--遠程倉庫的id-->
            <id>taocodeReleases</id>
            <!--構件的名字-->
            <name>account-email</name>
           <!--要部署的遠程倉庫地址-->
            <url>http://mvnrepo.code.taobao.org/nexus/content/repositories/releases</url>
        </repository>
        <!--快照版本構建的倉庫-->
        <snapshotRepository>
            <!--遠程倉庫的id-->
            <id>taocodeSnapshots</id>
            <!--構件的名字-->
            <name>account-email</name>
            <!--要部署的遠程倉庫地址-->
            <url>http://mvnrepo.code.taobao.org/nexus/content/repositories/snapshots</url>
        </snapshotRepository>
    </distributionManagement>

使用命令:mvn clean deploy

鏡像

加入B倉庫包含了A倉庫的全部服務,那麼B就是A 的鏡像。

當咱們訪問處在別的國家的中央倉庫的時候沒有與網絡的限制,下載速度會很慢,因此咱們可使用在國內的中央倉庫的鏡像 。

鏡像配置以下:

<mirrors>
        <mirror>
            <!--倉庫id,若是須要驗證 在setting中配置該id的用戶名 密碼-->
            <id>alimaven</id>
            <name>aliyun maven</name>
            <!--中央倉庫的鏡像-國內中央倉庫的地址-->
            <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
            <!--中央倉庫的id-->
            <mirrorOf>central</mirrorOf>
        </mirror>
    </mirrors>

爲了使用更簡單 複雜的須要,<mirrorOf>能夠進行以下配置

11111111

 

倉庫搜索服務

學會如何使用maven,引入jar 包 是經過使用jar的座標決定,如何查找jar的座標,有如下幾個網站可使用

一、https://repository.sonatype.org/   Sonaty Nexus

二、http://mvnrepository.com/     中央倉庫

相關文章
相關標籤/搜索