一、私服簡介
團隊開發現狀分析
(1)張三負責ssm_crm的開發,自己寫了一個ssm_pojo模塊,要想使用直接將ssm_pojo安裝到本地倉庫即可
(2)李四負責ssm_order的開發,需要用到張三所寫的ssm_pojo模塊,這個時候如何將張三寫的ssm_pojo模塊交給李四呢?
(3)如果直接拷貝,那麼團隊之間的jar包管理會非常混亂而且容器出錯,這個時候就想能不能將寫好的項目上傳到中央倉庫,誰想用就直接聯網下載即可
(4)Maven的中央倉庫不允許私人上傳自己的jar包,那麼我們就得換種思路,自己搭建一個類似於中央倉庫的東西,把自己的內容上傳上去,其他人就可以從上面下載jar包使用
(5)這個類似於中央倉庫的東西就是我們接下來的私服
所以到這就有兩個概念,一個是私服,一個是中央倉庫
私服:公司內部搭建的用於存儲Maven資源的服務器
遠程倉庫:Maven開發團隊維護的用於存儲Maven資源的服務器
所以說:
-
私服是一臺獨立的服務器,用於解決團隊內部的資源共享與資源同步問題
搭建Maven私服的方式有很多,我們來介紹其中一種使用量比較大的實現方式:
-
Nexus
-
Sonatype公司的一款maven私服產品
-
二、私服安裝
步驟1:下載解壓
將latest-win64.zip
解壓到一個空目錄下。
步驟2:啓動Nexus
使用cmd進入到解壓目錄下的nexus-3.30.1-01\bin
,執行如下命令:
nexus.exe /run nexus
注意:啓動如果報如下錯誤的話可能是路徑含有中文,修改一下路徑即可
啓動時間稍微有點長,稍微等一下,看到如下內容,說明啓動成功。
步驟3:瀏覽器訪問
訪問地址爲:
http://localhost:8081
步驟4:首次登錄重置密碼
用戶名爲admin,密碼爲路徑所在的文件內容
輸入用戶名和密碼進行登錄,登錄成功後,出現如下頁面
點擊下一步,需要重新輸入新密碼,這裏把密碼修改爲admin
設置是否運行匿名訪問
點擊完成
至此私服就已經安裝成功。如果要想修改一些基礎配置信息,可以使用:
-
修改基礎配置信息
-
安裝路徑下etc目錄中nexus-default.properties文件保存有nexus基礎配置信息,例如默認訪問端口。
-
-
修改服務器運行配置信息
-
安裝路徑下bin目錄中nexus.vmoptions文件保存有nexus服務器啓動對應的配置信息,例如默認佔用內存空間。
-
三、私服倉庫分類
私服資源操作流程分析:
(1)在沒有私服的情況下,我們自己創建的服務都是安裝在Maven的本地倉庫中
(2)私服中也有倉庫,我們要把自己的資源上傳到私服,最終也是放在私服的倉庫中
(3)其他人要想使用你所上傳的資源,就需要從私服的倉庫中獲取
(4)當我們要使用的資源不是自己寫的,是遠程中央倉庫有的第三方jar包,這個時候就需要從遠程中央倉庫下載,每個開發者都去遠程中央倉庫下速度比較慢(中央倉庫服務器在國外)
(5)私服就再準備一個倉庫,用來專門存儲從遠程中央倉庫下載的第三方jar包,第一次訪問沒有就會去遠程中央倉庫下載,下次再訪問就直接走私服下載
(6)前面在介紹版本管理的時候提到過有SNAPSHOT
和RELEASE
,如果把這兩類的都放到同一個倉庫,比較混亂,所以私服就把這兩種jar包放入不同的倉庫
(7)上面我們已經介紹了有三種倉庫,一種是存放SNAPSHOT
的,一種是存放RELEASE
還有一種是存放從遠程倉庫下載的第三方jar包,那麼我們在獲取資源的時候要從哪個倉庫種獲取呢?
(8)爲了方便獲取,我們將所有的倉庫編成一個組,我們只需要訪問倉庫組去獲取資源。
所有私服倉庫總共分爲三大類:
宿主倉庫hosted
-
項目小組內自己使用的
-
保存無法從中央倉庫獲取的資源
-
自主研發
-
第三方非開源項目,比如Oracle,因爲是付費產品,所以中央倉庫沒有
-
代理倉庫proxy
-
代理遠程倉庫,通過nexus訪問其他公共倉庫,例如中央倉庫,或者阿里雲等私服倉庫
-
所有項目組(整個公司)公用同一個代理倉庫
倉庫組group
-
將若干個倉庫組成一個羣組,簡化配置
-
倉庫組不能保存資源,屬於設計型倉庫
-
每個項目會有一個倉庫組,項目小組內共享