1. 程式人生 > >Maven倉庫—Nexus環境搭建及簡單介紹

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

1.    環境搭建

  1.1  下載

    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倉庫中,然後更新倉庫索引: