持續(xù)集成篇--Maven私有庫和本地庫的安裝與配置
如果構(gòu)建的Maven 項目本地倉庫沒有對應(yīng)的依賴包遂黍,那么就會去Nexus 私服去下載娃兽,
那么如果Nexus 私服也沒有此依賴包荔泳,就回去遠程中央倉庫下載依賴红伦,
Nexus 私服下載成功后再下載至本地Maven 庫供項目引用激况。
1 作彤、Maven 私服器Sonatype Nexus 的安裝與配置
Maven? 私有庫和本地庫的安裝與配置?Sonatype Nexus + Maven
環(huán)境 : CentOS 6.6 Final 、 JDK7 乌逐、 Sonatype Nexus 竭讳、 Maven
IP: 192.168.4.221
root? 用 戶操作
前提:已安裝 JDK7 并配置好了環(huán)境變量
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 服務(wù)绢慢,一個私有庫目錄)
3、編輯 Nexus 的 nexus.properties 文件,配置端口和 work 目錄信息(保留默認(rèn))
# cd nexus-2.11.2-03
# ls
bin conf lib LICENSE.txt logs nexus NOTICE.txt tmp
查看目錄結(jié)構(gòu),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 參數(shù)
# 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
****************************************
WARNING - NOT RECOMMENDED TO RUN AS ROOT
****************************************
Starting Nexus OSS...
Started Nexus OSS.
7缚窿、瀏覽器中打開:http://192.168.4.221:8081/nexus/
8棘幸、登錄,默認(rèn)用戶名 admin,默認(rèn)密碼 admin123:
到此倦零,Nexus 已安裝完成误续,接下來是 Nexus 的配置
Nexus? 配 置 (登錄 后)
1、菜單 Administration/Server 配置郵箱服務(wù)地址(如果忘記密碼扫茅,可以通過該郵箱找回密
碼)
給用戶配置郵箱地址蹋嵌,方便忘記密碼時找回:
用戶修改密碼
2葫隙、倉庫類型
group? 倉庫組:Nexus 通過倉庫組的概念統(tǒng)一管理多個倉庫栽烂,這樣我們在項目中直接請求倉庫組即可請求到倉庫組管理的多個倉庫;
hosted : 宿主倉庫:主要用于發(fā)布內(nèi)部項目構(gòu)件或第三方的項目構(gòu)件(如購買商業(yè)的構(gòu)件)
以及無法從公共倉庫獲取的構(gòu)件(如 oracle 的 JDBC 驅(qū)動)
proxy? 代理倉庫:代理公共的遠程倉庫恋脚;
virtual? 虛擬倉庫:用于適配 Maven 1愕鼓;
一般用到的倉庫種類是 hosted、proxy
Hosted? 倉庫常 用類 型 說明:
releases 內(nèi)部的模塊中 release 模塊的發(fā)布倉庫
snapshots 發(fā)布內(nèi)部的 SNAPSHOT 模塊的倉庫
3rd party 第三方依賴的倉庫慧起,這個數(shù)據(jù)通常是由內(nèi)部人員自行下載之后發(fā)布上去
如果構(gòu)建的 n Maven? 項目本地倉庫沒有對應(yīng)的依賴包,那么就會去 s Nexus? 私服去下載册倒,
如果 Nexus 私服也沒有此依賴包蚓挤,就回去遠程中央倉庫下載依賴,這些中央倉庫就是 proxy 驻子。
Nexus? 私服下載成功后再下載至本地 n Maven? 庫供項目引用灿意。
3、設(shè)置 proxy 代理倉庫(Apache Snapshots/Central/Codehaus Snapshots)準(zhǔn)許遠程下載崇呵,
如:
4缤剧、Maven 本地庫的安裝與配置(請看參考視頻的操作)
環(huán)境變量、setting.xml
5域慷、MyEclipse 中的 Maven 配置(請看參考視頻的操作)
6荒辕、項目的構(gòu)建與發(fā)布演示(請看參考視頻的操作)
修改 common-parent 中的 pom.xml 中的私有庫地址
7、上傳第三方包操作演示