Maven倉庫—Nexus環境搭建及簡單介紹

1.    環境搭建

  1.1  下載

    http://www.sonatype.org/nexus/

    NEXUS OSS [OSS = Open Source Software,開源軟件——免費]

    NEXUS PROFESSIONAL -FREE TRIAL [專業版本——收費]。

    所以選擇NEXUS OSS

    


    找到Download andInstall Nexus OSS。下載ZIP的即可:

       

 

  1.2  配置

    將下載的ZIP包解壓,得到如下目錄:

    


    將Nexus的bin目錄添加到Path環境變量中:

    


    將Nexus與當前使用的JDK的關聯,修改如下的配置文件即可,目錄爲,

    ${ Nexus_HOME }/bin/jsw/conf/wrapper.conf。如下圖:

    


    到此配置完畢,然後,即可在本地訪問Nexus,如出現下圖就表示配置成功:

    


2.    Nexus中的倉庫


  2.1  類型介紹

    登陸Nexus,在左邊菜單欄裏選擇Repositories,然後會出現右邊的畫面,右邊上半部分是列出來的repository,黑體字是類型爲group的repository。

    這裏簡單介紹下幾種repository的類型:

    Ø  hosted,本地倉庫,通常我們會部署自己的構件到這一類型的倉庫。比如公司的第二方庫。

    Ø  proxy,代理倉庫,它們被用來代理遠程的公共倉庫,如maven中央倉庫。

    Ø  group,倉庫組,用來合併多個hosted/proxy倉庫,當你的項目希望在多個repository使用資源時就不需要多次引用了,只需要引用一個group即可。

    


  2.2  管理本地倉庫

    我們前面講到類型爲hosted的爲本地倉庫,Nexus預定義了3個本地倉庫,分別是Releases, Snapshots, 3rd Party. 分別講一下這三個預置的倉庫都是做什麼用的:

  Releases:

     這裏存放我們自己項目中發佈的構建, 通常是Release版本的, 比如我們自己做了一個FTP Server的項目, 生成的構件爲ftpserver.war, 我們就可以把這個構建發佈到Nexus的Releases本地倉庫. 關於符合發佈後面會有介紹.

  Snapshots:

     這個倉庫非常的有用, 它的目的是讓我們可以發佈那些非release版本, 非穩定版本, 比如我們在trunk下開發一個項目,在正式release之前你可能需要臨時發佈一個版本給你的同伴使用, 因爲你的同伴正在依賴你的模塊開發, 那麼這個時候我們就可以發佈Snapshot版本到這個倉庫, 你的同伴就可以通過簡單的命令來獲取和使用這個臨時版本.

  3rd Party:

    顧名思義, 第三方庫, 你可能會問不是有中央倉庫來管理第三方庫嘛,沒錯, 這裏的是指可以讓你添加自己的第三方庫, 比如有些構件在中央倉庫是不存在的. 比如你在中央倉庫找不到Oracle 的JDBC驅動, 這個時候我們就需要自己添加到3rdparty倉庫。


  2.3  在Nexus爲自己的項目手動單獨建庫

    建庫,Add-- >HostedRepository

    


    建權限

    


    建角色(指定權限)

    


    建用戶(指定角色)

    


  2.4  Maven倉庫組

    通過前面介紹可以瞭解到, 我們可以建立多個proxy代理倉庫,hosted本地倉庫, 如果沒有倉庫組的概念,我們如果需要引用這些倉庫的是時候需要一一加入到我們的setting.xml裏面去, 有了倉庫的組的概念, 我們只需要做一次引用就可以了,把我們需要的倉庫加入到倉庫組即可。如下圖:

    


    倉庫組默認包含本地倉庫Releases,snapshots, 3rd party和代理倉庫MavenCentral. 你可以在Configuration配置頁添加倉庫到這個倉庫組. 如果需要你還可以創建一個倉庫組,在Repositories菜單處選add-->Repository Group即可


3.    項目中配置Nexus倉庫

  如果只有一個項目,可以配置在項目的pom文件中:

  


  如果有多個項目都使用Nexus的配置,可以將如上皮遏制放到Maven的Settings文件中:

  


4.    配置倉庫鏡像

  默認的,如果本地倉庫找不到依賴的構件,這時需要東西時先到Nexus上找,如果發現Nexus服務關閉後,會自動到中央倉庫找。

  如果我們想覆蓋中央倉庫的默認地址,強制依賴的東西都到Nexus中去找,即使Nexus關閉也不會到中央工廠去下載:

  修改Maven的Settings文件:

  


  注意,如果本地倉庫有東西,但Nexus中沒有,需要將該東西考到Nexus倉庫中,然後更新倉庫索引:

  

發佈了59 篇原創文章 · 獲贊 0 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章