天天看點

Maven搭建私服

Maven倉庫概念

Maven倉庫就是用來存儲所有Maven共享建構的地方(所有開源項目jar包的存放地)。
    使用者根據GAV坐标去倉庫下載下傳對應的建構(jar包):
    建構(Jar包)一般存放的路徑規則為: groupId /artifactId /version / artifactId -version.jar
           

Maven倉庫的分類

、本地倉庫
    預設是 ${user.home}/.m2/repository
    我們可以通過複制setting.xml檔案,指定我們本地倉庫的位址
    每個使用者隻有一個本地倉庫
           
Maven搭建私服
2、遠端倉庫
* 中央倉庫:Maven預設的遠端倉庫
      http://repo1.maven.org/maven2

* 私服:是一種特殊的遠端倉庫,它是架設在本地區域網路内的倉庫
    私服的作用:當團隊成員進行開發時,每個人都要從中央倉庫下載下傳項目建構到本地倉庫,費時費力,這個時候可以在區域網路環境搭建一個私人倉庫供團隊使用,這就是MAVEN私服.

           

Maven私服Nexus

Nexus安裝

    Nexus其實就是一個JAVAWEB項目,安裝nexus其實就是部署一個JAVA項目,它可以講所有下載下傳過的Maven項目建構在區域網路内提供一個緩存,當其他成員通過nexus下載下傳項目建構時,如果nexus本地緩存倉庫存在此建構,則不用到遠端倉庫進行下載下傳.
    Nexus下載下傳網站:https://www.sonatype.com/oss-thank-you-win64.zip
    Nexus私服有兩種部署方式;
    *  nexus.zip 裡面包含容器和項目  在dos視窗(在nexus--/bin目錄下),執行nexus -install,可以安裝成系統服務的方式,每次開機會啟動
    *  nexus.war 這裡面隻包含項目代碼,相當于一個普通的java項目,可以部署到自己的tomcat,需要用到nexus的時候啟動tomcat即可
安裝版本:nexus---bundle.zip
    注意:在安裝之前,改一下配置檔案(nexus--/conf/nexus.properties),改項目的端口和項目的名稱
    預設的使用者名是admin 密碼是admin123
    注意:在如下圖所示路徑的配置檔案下代表了我們通路nexus項目的端口名和工程名,注意在安裝前将端口修改為跟其他項目不沖突的端口.
           
Maven搭建私服
Nexus通路以及登陸

    通路URL: http://localhost:/nexus ,登陸使用者名和密碼預設為admin/admin123
           
Maven搭建私服
Nexus的倉庫(Resositores)介紹 
    如下圖所示:nexus倉庫類型與分組
    倉庫類型:
        * group(倉庫組):一組倉庫的集合
        * hosted(宿主):配置第三方倉庫 (包括公司内部私服 ) 
        * proxy(代理):私服會對中央倉庫進行代理,使用者連接配接私服,私服自動去中央倉庫下載下傳jar包或者插件 
        *virtual(虛拟):相容Maven1 版本的jar或者插件
    倉庫名稱:
        * rd party: 一個政策為Release的宿主類型倉庫,用來部署無法從公共倉庫獲得的第三方釋出版本建構
        * Apache Snapshots: 一個政策為Snapshot的代理倉庫,用來代理Apache Maven倉庫的快照版本建構
        * Central: 代理Maven中央倉庫
        * Central M1 shadow: 代理Maven1 版本 中央倉庫
        * Codehaus Snapshots: 一個政策為Snapshot的代理倉庫,用來代理Codehaus Maven倉庫的快照版本構件
        * Releases: 一個政策為Release的宿主類型倉庫,用來部署組織内部的釋出版本構件
        * Snapshots: 一個政策為Snapshot的宿主類型倉庫,用來部署組織内部的快照版本構件
        *  Public Repositories:該倉庫組将上述所有政策為Release的倉庫聚合并通過一緻的位址提供服務


           
Maven搭建私服

配置所有建構均從私服下載下傳

搭建好私服以後, 開發人員或者使用人員可以從私服下載下傳項目建構,而不用直接從遠端倉庫下載下傳項目建構,,我們需要做如下幾個操作步驟.
    * 更改本地倉庫的setting.xml中配置
    做完此配置以後,我們在本地建構項目就可以通過私服下載下傳.
    那麼私服的項目建構從哪裡來?
           
Maven搭建私服
Maven搭建私服

Nexus私服索引下載下傳

Nexus安裝好以後我們需要更新遠端倉庫項目建構的索引檔案.
    更新索引有兩種方式:
    :開啟索引自動下載下傳
        * 打開Repositories标簽,選中遠端倉庫并打開Configuration,将Download Romote Location 設定為true;
        * 在遠端倉庫(Central)上右鍵選擇Update Index,Nexus會自動建立一條任務計劃;一般遠端倉庫都比較大,建構會比較多,索引檔案會很大,像http://repo1.maven.org/maven2 就有幾百M,是以需要的時間就比較長。
        * 從左邊Administration中進入找到cheduled Tasks,可以進入Scheduled Tasks檢視任務的執行情況,當執行完成時,遠端倉庫的索引就已經建立完畢了。
           
Maven搭建私服
:手動更新
請參考如下連結:http://blog.csdn.net/shawyeok/article/details/
通過以上兩種方式,我們可以在Browse_Index看到許多檔案的話就說明更新成功.
           
Maven搭建私服

Nexus的目錄結構

通過以上章節的學習,我們回過頭來看一下nexus私服的目錄結構以及主要的兩個目錄 indexer目錄和storage目錄
    * 整個sonatype-work/nexus目錄結構如下:
           
Maven搭建私服
* Indexer 索引目錄結構:
           
Maven搭建私服
* Storage存儲目錄結構:
           
Maven搭建私服

釋出本地建構到Nexus

* 首先我們要設定本地項目對Nexus的通路權限控制
如下圖所示: 在本地倉庫的setting.xml中<servers>标簽裡面添加如下配置:
           
Maven搭建私服
* 然後在項目的pom.xml添加項目釋出位址的配置
如下圖所示,我們在需要釋出到遠端倉庫的建構項目的pom.xml檔案添加如下配置:
           
Maven搭建私服
* 右鍵項目或者pom.xml檔案執行 maven指令 deploy,此指令會将本地建構打包到本地倉庫,然後釋出到遠端倉庫中(nexus私服)
           
Maven搭建私服