前置條件:
1.安裝jdk,可參考 http://www.cnblogs.com/grey-wolf/p/6480489.html
2.nexus倉庫管理器,分為兩個版本,Nexus Repository Manager OSS 和 Nexus Repository Manager Pro。前者可以免費使用,相比后者,功能缺少一些,但是不影響我們搭建maven私服。
所以就選擇OSS版本。
下載地址:https://www.sonatype.com/download-oss-sonatype,下載不下來可以去這里 http://download.csdn.net/detail/cctvckl/9766638
文檔下載地址:
http://books.sonatype.com/nexus-book/pdf/nxbook-pdf.pdf
好了,讓我們正式開始吧。
- 安裝nexus服務器
- 上傳tar.gz包到指定目錄(我這邊假定是/home/ckl/upload)
rz
mv nexus-2.14.3-02-bundle.tar.gz /home/ckl/upload/
-
解壓到/usr/local
tar -zxvf /home/ckl/upload/nexus-2.14.3-02-bundle.tar.gz -C /usr/local/
注意:
一定要解壓到這個目錄下,具體原因我也不知道,文檔里是這么做的,我們也沒必要自己找麻煩。
- 建立軟鏈接
sudo ln -s nexus-2.14.3-02 nexus
- 查看/usr/local目錄,結果如下:
- 設置環境變量(按官網文檔的說法是可選,不過還是配上吧)
vim /etc/profile,在最后加上下面這一句,:wq保存退出
- source /etc/profile 刷新剛設置的環境變量,使之生效
- 查看結果
- 啟動服務器
(博客園的這個數字序號不知道怎么才能設成2.有知道的朋友麻煩告知下)
前台啟動:
cd /usr/local/nexus
./bin/nexus console
以后台進程啟動:
./bin/nexus start
查看輸出的日志:
tail -f logs/wrapper.log
好了,我們來前台啟動一下。咦,沒起來,提示:
意思是堅持使用root用戶運行的話,需要設置一個環境變量.
vim /etc/profile
結尾加上
export RUN_AS_USER=root
保存退出。
刷新:source /etc/profile
再次運行,結果如下:
從紅框標識及相關文檔,可以知道,進程在8081端口啟動。
好了,我們在瀏覽器上看看能不能訪問吧,路徑:
http://192.168.2.141(換成你的ip):8081/nexus.
結果如圖所示:
點擊右上角登錄:
默認用戶名為admin,密碼admin123
3.搭建私服
3.1 界面元素介紹
登錄后,點擊左側Repositories,界面如上圖所示。
右側的列表中,可以看到nexus預設的幾個倉庫。
第一個public Repositories,類型為group,這個簡單理解為倉庫的集合,下面的倉庫就是可以加入到這個集合的元素。
對外可以只提供一個單獨的url,如上圖顯示為:http://192.168.2.141:8081/nexus/content/groups/public/
大部分的終端用戶,只需要配置上面這一個單獨的聚合后的url,而不用單獨配置多個倉庫。用戶也不需要知道某個jar包具體來源於maven 中央倉庫,或者是Apache Snapshots,或者是我們自己添加的其他倉庫。
這樣的好處在於:如果我們要新增某個倉庫(如開源中國、阿里雲),客戶端不需要做任何更改,只需要在nexus上將要新增的倉庫加入到對外提供服務的倉庫 group中就可以。
第二個3rd party,與倒數第一個和第二個倉庫,Releases和Snapshots一樣,類型為hosted,意思是由nexus本機管理的倉庫。該倉庫用於商業化的,第三方提供的非開源的依賴倉庫,如oracle jdbc driver。
倒數第二個Releases,用於存放開發團隊內部用的正式版的依賴。
倒數第一個Snapshots,用於存放開發團隊內部日常構建的頻率更新較快的依賴包。
Apache Snapshots和Central類型都是proxy,意思是遠端倉庫的代理。前者包含了Apache Software Foundation 發布的快照版本(這么翻譯不知道對不對),后者為Maven中央倉庫,我們平時maven默認就是連接該倉庫。
Central M1 Shadow類型為virtual,按官方文檔的意思是,只是已有倉庫的一個不同呈現方式的映射。有需要可以參考官方手冊6.2.3節。
3.2 倉庫集合的界面
點擊Configuration,可以看到當前添加到該集合的倉庫列表及順序(優先級高的在上面,可用鼠標拖拽),當我們新增了倉庫,將會出現在右側的available Repository,添加到左邊即可。
如果有哪個倉庫不想加入到該集合,也可以拖拽到右邊來。
3.3使用本地maven客戶端測試nexus是否成功部署
首先復制倉庫集合的repository url,客戶端配置需要用到。
配置maven客戶端:
打開settings.xml,按照如下步驟修改:(該部分參考文檔4.2節)
<mirrors> <mirror> <!--This sends everything else to /public --> <id>nexus</id> <mirrorOf>*</mirrorOf> <url>http://192.168.2.140:8081/nexus/content/groups/public</url> </mirror> </mirrors>
<profiles> <profile> <id>nexus</id> <!--Enable snapshots for the built in central repo to direct --> <!--all requests to nexus via the mirror --> <repositories> <repository> <id>central</id> <url>http://central</url> <releases><enabled>true</enabled></releases> <snapshots><enabled>true</enabled></snapshots> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>central</id> <url>http://central</url> <releases><enabled>true</enabled></releases> <snapshots><enabled>true</enabled></snapshots> </pluginRepository> </pluginRepositories> </profile> </profiles> <activeProfiles> <activeProfile>nexus</activeProfile> </activeProfiles>
接下來在ide中測試下(我個人用maven命令行不多,不熟悉,還是用intelj idea演示吧)
在idea中依次打開File--Settings--搜索Maven--出現如下界面:
保證上述幾項指向正在用的maven目錄和配置文件即可。點擊ok,退出。
打開Maven Projects窗口,勾選Profiles中的nexus。
隨便新建一個maven工程,在pom中添加一項本地倉庫中沒有的依賴,應該出現如下圖示:(下圖可以看出,正在去我們配置的私服下載maven依賴)
至此。大體配置完成。
上傳本地內部依賴到私服,可以參考:
http://jingyan.baidu.com/article/a948d6517b72eb0a2dcd2e2a.html
ps:有問題歡迎大家一起討論,也可以直接參考文章開頭發的pdf文檔,非常詳細。