Maven3倉庫與配置

mavne倉庫

maven的倉庫分爲兩類:本地倉庫和遠程倉庫,當maven在按照座標查找構建或插件時,會先在本地倉庫查找,能找到就會直接使用本地倉庫的構建或插件;當沒找到對應的構建或插件或者須要查看更新時,纔會去遠程倉庫查找,找到後會下載到本地,沒找到會報錯。java

maven的本地倉庫

maven的本地倉庫位置默認在用戶目錄下的.m2/repository,能夠經過配置settings.xml中的apache

<settings>
    ...
    <localRepository></localRepository>
    ...
</settings>

配置本地倉庫到其餘位置,須要注意的是,要使settings.xml中的配置生效,在IDE中必須指定settings.xml位置;若在命令行中使用,默認會使用maven_home目錄下config中的settings.xml,能夠使用-s指定要使用的settings.xml文件的位置。app

maven的遠程倉庫

maven的遠程倉庫又分爲公開的倉庫(如默認的中央倉庫、java.net Maven庫、JBoss Maven庫等)和私服(通常爲公司局域網中使用,節約流量,便於管理,加速構建,常見的能夠使用nexus這個開源項目來快速搭建)maven

maven的遠程倉庫配置

maven的遠程倉庫配置能夠在pom.xml中或settings.xml中完成,pom.xml文件用來設置當前項目的配置項,若是有配置其餘模塊或其餘項目會複用,能夠在settings.xml中配置或者使用繼承來實現配置的複用;settings.xml適合用來配置一些全部maven項目都會公用的配置信息,好比:maven構建以及插件的下載地址、maven的鏡像、maven代理等佈局

<repositories>
    <repository>
        <id>maven.oschia.net</id>
        <name>oschina maven repository</name>
        <url>http://maven.oschina.net/content/groups/public/</url>
        <releases>
            <enabled>true</enabled>
            <updatePolicy>daily</updatePolicy>
            <checksumPolicy>ignore</checksumPolicy>
        </releases>
        <snapshots>
            <enabled>true</enabled>
            <updatePolicy>daily</updatePolicy>
            <checksumPolicy>ignore</checksumPolicy>
        </snapshots>
        <layout>default</layout>
    </repository>
</repositories>
<pluginRepositories>
    <pluginRepository>
        <id>maven.oschina.net</id>
        <name>oschina maven repository</name>
        <url>http://maven.oschina.net/content/groups/public/</url>
        <releases>
            <enabled>true</enabled>
            <updatePolicy>daily</updatePolicy>
            <checksumPolicy>ignore</checksumPolicy>
        </releases>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
        <layout>default</layout>
    </pluginRepository>
</pluginRepositories>

repositories元素下能夠配置多個repository,每一個repository表示一個遠程倉庫,repository下面的元素以下ui

  • id,每一個repository須要一個惟一的id,若是id相同後面的配置會覆蓋前面的配置,如maven的超級pom.xml(解壓${M2_HOME}/lib/maven-model-builder-3.0.4.jar,在解壓出來的目錄的/org/apache/maven/model/pom-4.0.0.xml)中配置了maven的中央倉庫,id爲central,咱們能夠經過配置相同id覆蓋中央倉庫配置;url

  • name,用於描述這個倉庫spa

  • releases,enabled:true或false;updatePolicy:更新頻率never-從不,always-每次構建都檢查,daily-天天(默認),inerval:x-每隔x分鐘;checksumPolicy:用來配置文件校驗和策略,當勾踐被部署到遠程倉庫會同時生成一個校驗和文件,在下載構件時檢查校驗和,warn-校驗失敗輸出警告(默認),fail-校驗失敗構建失敗,ignore-忽略.net

  • snapshots 同上插件

  • layout,佈局默認爲default

pluginRepositories狀況與上面基本一致。

部署倉庫配置

私服能夠用於部署第三方構件,須要在pom.xml文件中以下配置:

<distributionManagement>
    <repository>
        <id>project-release</id>
        <name>release repository</name>
        <url></url>
    </repository>
    <snapshotRepository>
        <id>project-snapshot</id>
        <name>snapshot repository</name>
        <url></url>
    </snapshotRepository>
</distributionManagement>

repository用來配置release版本的部署倉庫,snapshotRepository用於配置snapshot版本的部署配置

倉庫認證

在從倉庫下載構建或者部署構件到倉庫時,能夠開啓帳號密碼認證,只有擁有正確的帳號密碼的才能夠使用,這是須要在settings.xml文件中配置認證信息,以下:

<settings>
......
    <servers>
        <server>
            <id>mapping repository id</id>
            <username></username>
            <password></password>
        </server>
    </servers>
......
</settings>
相關文章
相關標籤/搜索