天天看點

Linux搭建Maven私有庫

搭建環境:CentOS 6.6 Final、JDK7、Sonatype Nexus、Maven
           

Maven私有庫是類似Maven中央倉庫一樣用來管理很多Jar版本平台。Maven中央倉庫搭建在國外,在我們天朝的“法網”下,通路國外網站有多慢,各位道兄都是知道的。

開發分布式項目使用Maven建構可以劃分很多個工程,公司裡面一個項目通常由一個開發團隊來開發,如果使每個開發人員本地Jar都是最新版本?Maven私有庫就是管理Jar版本決絕方案!

本文搭建Maven私有庫使用的是Sonatype Nexus 軟體搭建,Nexus 是比較流行的倉庫管理器搭建方式之一,nexus提供了強大的倉庫管理功能,構件搜尋功能,它基于REST,前端的UI是一個extjs架構的搭建T用戶端,它占用較少的記憶體,基于簡單檔案系統而非資料庫。這些優點使其日趨成為最流行的Maven倉庫管理器。

話不多說,開始詳細的安裝步驟。

注:代碼段注釋采用 “”//“”表示 。

// 1.需要安裝JDK7并且配置好環境變量,直接略過這個步驟

// 2.下載下傳最新版 Nexus(本教程使用的是:nexus-2.11.2-03-bundle.tar.gz)

// 本文使用root使用者安裝,解壓Nexus
// 建立一個 nexus目錄并将解壓出來軟體放到這個目錄
# mkdir nexus 
# tar -zxvf nexus-2.11.2-03-bundle.tar.gz -C nexus 
// 進入目錄
# cd nexus 
# ls 
nexus--  sonatype-work (一個 nexus 服務,一個私有庫目錄)
//3、編輯 Nexus 的 nexus.properties 檔案,配置端口和 work 目錄資訊(保留預設) 
# cd nexus-2.11.2-03 
# ls
bin  conf  lib  LICENSE.txt  logs  nexus  NOTICE.txt  tmp //檢視lib目錄結構發現很多jetty Jar包,說明nexus使用部署容器是jetty
# cd conf 
//進入配置檔案目錄 , 編輯nexus.properties 檔案
# vi nexus.properties 
# Jetty section 
//jetty 部署占用端口是8081
application-port= 
//指定這個程式可以通過指定IP通路,0.0.0.0 代表所有IP都可以通路
application-host= 
//指定WEB項目的路徑 ,${bundleBasedir}代表nexus工程的根目錄
nexus-webapp=${bundleBasedir}/nexus 
//指定項目通路的路徑,即 IP:8081/nexus 
nexus-webapp-context-path=/nexus 
# Nexus section 
//指定nexus存放倉庫檔案的目錄
nexus-work=${bundleBasedir}/../sonatype-work/nexus 
runtime=${bundleBasedir}/nexus/WEB-INF


// 4、編輯 nexus 腳本, 配置 RUN_AS_USER 參數 運作的使用者名
# vi /root/nexus/nexus-2.11.2-03/bin/nexus 
// RUN_AS_USER= 改為: 
RUN_AS_USER=root 
// 5、防火牆中打開 8081 端口 。注意:雲主機同時需要開放安全組8081端口!
# vi /etc/sysconfig/iptables 
// 添加: -A INPUT -m state --state NEW -m tcp -p tcp --dport 8081 -j ACCEPT 儲存後重新開機防火牆 
# service iptables restart

//6、進入bin目錄啟動 nexus 
# ./nexus start 
**************************************** 
WARNING - NOT RECOMMENDED TO RUN AS ROOT **************************************** 
Starting Nexus OSS...
Started Nexus OSS. 

//7、浏覽器中打開:http://IP:8081/nexus/  測試項目是否可以通路。

//8、登入,預設使用者名 admin,預設密碼 admin123
           

配置成功 輸入使用者密碼登入。

Linux搭建Maven私有庫

登入成功截圖。

Linux搭建Maven私有庫

Nexus 配置(登入後)

1、菜單 Administration/Server 配置郵箱服務位址(如果忘記密碼,可以通過該郵箱找回密 碼)

Linux搭建Maven私有庫

注意:郵箱需要開通smtp協定,才可以測試發送郵件。

2、給使用者配置郵箱位址,友善忘記密碼時找回:

Linux搭建Maven私有庫

3、登入界面點選忘記密碼。

Linux搭建Maven私有庫

4、使用者郵箱收到修改後的使用者密碼。

Linux搭建Maven私有庫

5、複制密碼登入,重新修改密碼即可。

Nexus倉庫類型簡介:

Linux搭建Maven私有庫

group 倉庫組:Nexus 通過倉庫組的概念統一管理多個倉庫,這樣我們在項目中直接請求倉庫組即可請求到倉庫組管理的多個倉庫;

hosted 宿主倉庫:主要用于釋出内部項目JAR包或第三方的JAR包(如購買商業的構件) 以及無法從公共倉庫擷取的JAR包(如 oracle 的 JDBC 驅動)

proxy 代理倉庫:代理公共的遠端倉庫,預設是Maven中央倉庫(https://repo1.maven.org/maven2/);

virtual 虛拟倉庫:用于适配Maven 1;

一般用到的倉庫種類是 hosted、proxy ;

Hosted 倉庫常用類型說明:

releases : 内部的子產品中 release 子產品的釋出倉庫 。

snapshots: 釋出内部的 SNAPSHOT 子產品的倉庫 。

3rd party : 第三方依賴的倉庫,這個資料通常是由内部人員自行下載下傳之後釋出上去。

Linux搭建Maven私有庫

如果建構的 Maven 項目本地倉庫沒有對應的依賴包,那麼就會去 Nexus 私服去下載下傳, 如果Nexus私服也沒有此依賴包,就回去遠端中央倉庫下載下傳依賴,這些中央倉庫就是proxy。 Nexus 私服下載下傳成功後再下載下傳至本地 Maven 庫供項目引用。

3、設定 proxy 代理倉庫(Apache Snapshots/Central/Codehaus Snapshots)準許遠端下載下傳, 如

Linux搭建Maven私有庫

繼續閱讀