Maven搭建私服
為什麽要搭建私服?搭建私服有什麽好處?
以我最近技術調研和相關的使用為起點概述:
首先說明,為什麽要搭建私服?
搭建私服的目的是,通常企業項目開發,特別是使用maven作為項目管理,現在非常流行使用maven,包括我和我的同學及其朋友相關的公司,它們公司都用maven構建項目。因為jar包統一方便管理。搭建私服的目的,也就在於管理Jar包。就好比作為運維的,特別是一些大公司,通常都會有公司自己專門的rpm軟件包管理倉庫,同時maven也是如此。
通常情況下,只要你在對應的pom.xml文件中引入你的私服路徑,那麽,項目下載對應的jar包,會優先去私服下載,私服沒有再去公共倉庫,也就是maven倉庫。
搭建私服的好處,除了方便管理jar包,減少項目開發時,引入jar包沖突問題,在這家公司開發了好幾個項目,發現遇到除代碼邏輯或者業務方面的問題之外,遇到比較多的就是jar包沖突問題,maven有一個叫依賴傳遞的特性,也就是比如下圖所示:
通常情況,這樣我們有的時候只需引入幾個依賴即可,因為那幾個依賴裏面已經包含了其他依賴。
這就是maven特性之一,也是為許多人津津樂道的,名曰:依賴傳遞。
下面進入如何搭建私服?
nexus官網最新下載地址為:https://www.sonatype.com/download-oss-sonatype?hsCtaTracking=920dd7b5-7ef3-47fe-9600-10fecad8aa32%7Cf59d5f10-099f-4c66-a622-0254373f4a92
舊版本下載地址為:
(1)下載
wget http://download.sonatype.com/nexus/oss/nexus-2.10.0-02-bundle.tar.gz
(2)解壓
tar -zxvf nexus-2.10.0-02-bundle.tar.gz
(3)修改nexus文件
vim nexus
在啟動文件nexus中增加nexus的啟動用戶,否則沒權限啟動,將報錯如下:
WARNING - NOT RECOMMENDED TO RUN AS ROOT
If you insist running as root, then set the environment variable RUN_AS_USER=root before running this script
所以要解決此問題,需要在啟動文件nexus,加上RUN_AS_USER=root,如圖所示:
(4)修改完畢後,啟動nexus
進入bin目錄下執行 ./nexus start
會出現:
Starting Nexus OSS...
Started Nexus OSS.
在瀏覽器輸入:http://ip:8081/nexus
登錄nexus,右上角Log In,默認登錄用戶名密碼:admin/admin123
登錄之後,我們可以點擊左邊菜單欄Repositories進入詳細配置
可以自己重新創建一個私服配置,這裏我們用系統在帶的Public Repositories
關於倉庫的類型介紹
hosted 類型的倉庫,內部項目的發布倉庫
releases 內部的模塊中release模塊的發布倉庫
snapshots 發布內部的SNAPSHOT模塊的倉庫
3rd party 第三方依賴的倉庫,這個數據通常是由內部人員自行下載之後發布上去
proxy 類型的倉庫,從遠程中央倉庫中尋找數據的倉庫
group 類型的倉庫,組倉庫用來方便我們開發人員進行設置的倉庫
但是需要將其他幾個代理的庫配置映射到Public中,分別將Apache Snapshots、Central、Codehaus Sanpshots下Download Remote Indexes選項選擇【true】,保存即可,默認是false,如下圖
然後分別將Apache Snapshots、Central、Codehaus Sanpshots更新Index,在每一個庫上面右鍵操作Repair Index
最後將Public Repositories操作Repair Index
然後接可以測試maven倉庫了。
在項目中,引用maven倉庫。則需要項目的pom.xml文件中添加如下:
<repositories>
<repository>
<id>thirdparty</id>
<url>http://yc520:8081/nexus/content/repositories/thirdparty</url>
</repository>
</repositories>
搭建私服參考鏈接為:https://www.cnblogs.com/candle806/p/4076325.html
私服上傳第三方jar包參考鏈接為:https://blog.csdn.net/xiaodaiwang/article/details/78093591
我個人之前下載過最新版安裝,總會出現不如人意的情況,甚至出現了生成hr開頭的錯誤日誌文件,通常這種錯誤日誌文件是因為Java運行環境不足導致的。
但我換成低版本,而我的jdk仍然是8,而不是7或者6,也沒有出現一些朋友所說的那樣,jdk版本與私服+maven存在版本沖突問題。
本次我的環境為Linux(阿裏雲服務器,ubuntu16.04),maven3以上,jdk8。本人親自搭建並測試上傳jar,並引入jar。完全沒問題。
不過本地window測試了下最新版,出現一些小問題導致本地window不能正常使用nexus。我認為也是版本問題的緣故。
Maven搭建私服