天天看點

CI伺服器 - Maven私有庫和本地庫的安裝與配置(sonatype Nexus+ maven )

持續內建篇 -  Maven私有庫和本地庫的安裝與配置 -  Sonatype Nexus + Maven 

CI伺服器 - Maven私有庫和本地庫的安裝與配置(sonatype Nexus+ maven )

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

IP:192.168.4.221 

root使用者操作 

前提:已安裝JDK7并配置好了環境變量 

1、下載下傳最新版 Nexus(本教程使用的是:nexus-2.11.2-03-bundle.tar.gz),下載下傳位址:

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

#  wget  https://sonatype-download.global.ssl.fastly.net/nexus/oss/nexus-2.11.2-

03-bundle.tar.gz 

2、解壓 

# mkdir nexus 

# tar -zxvf nexus-2.11.2-03-bundle.tar.gz -C nexus 

# cd nexus 

# ls 

nexus-2.11.2-03  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 

檢視目錄結構,jetty運作 

# cd conf 

# vi nexus.properties 

# Jetty section 

application-port=8081 

application-host=0.0.0.0 

nexus-webapp=${bundleBasedir}/nexus 

nexus-webapp-context-path=/nexus 

# Nexus section 

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 端口 

# vi /etc/sysconfig/iptables 

添加: 

-A INPUT -m state --state NEW -m tcp -p tcp --dport 8081 -j ACCEPT 

儲存後重新開機防火牆 

# service iptables restart 

6、啟動nexus 

# /root/nexus/nexus-2.11.2-03/bin/nexus start 

./nexus start

**************************************** 

WARNING - NOT RECOMMENDED TO RUN AS ROOT 

**************************************** 

Starting Nexus OSS... 

Started Nexus OSS. 

7、浏覽器中打開:http://192.168.4.221:8081/nexus/ 

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

CI伺服器 - Maven私有庫和本地庫的安裝與配置(sonatype Nexus+ maven )

到此,Nexus已安裝完成,接下來是Nexus的配置 

Nexus配置(登入後) 

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

碼) 

CI伺服器 - Maven私有庫和本地庫的安裝與配置(sonatype Nexus+ maven )

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

CI伺服器 - Maven私有庫和本地庫的安裝與配置(sonatype Nexus+ maven )

使用者修改密碼 

CI伺服器 - Maven私有庫和本地庫的安裝與配置(sonatype Nexus+ maven )
CI伺服器 - Maven私有庫和本地庫的安裝與配置(sonatype Nexus+ maven )

2、倉庫類型 

CI伺服器 - Maven私有庫和本地庫的安裝與配置(sonatype Nexus+ maven )

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

hosted 宿主倉庫: 主要用于釋出内部項目構件或第三方的項目構件 (如購買商業的構件)

以及無法從公共倉庫擷取的構件(如 oracle 的  JDBC 驅動) 

proxy 代理倉庫:代理公共的遠端倉庫; 

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

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

Hosted倉庫常用類型說明: 

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

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

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

如果建構的Maven項目本地倉庫沒有對應的依賴包,那麼就會去 Nexus 私服去下載下傳, 

如果Nexus私服也沒有此依賴包,就回去遠端中央倉庫下載下傳依賴,這些中央倉庫就是proxy。 

Nexus私服下載下傳成功後再下載下傳至本地 Maven庫供項目引用。 

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

如: 

CI伺服器 - Maven私有庫和本地庫的安裝與配置(sonatype Nexus+ maven )

4、Maven本地庫的安裝與配置(請看參考視訊的操作) 

  環境變量、setting.xml 

5、MyEclipse中的Maven配置(請看參考視訊的操作) 

6、項目的建構與釋出示範(請看參考視訊的操作) 

  修改common-parent中的pom.xml中的私有庫位址 

7、上傳第三方包操作示範