背景
最近接手一個其他公司的項目,因為工程中使用了maven,而且里面有很多他們自己封裝很多自己的構件(就是jar、war等等),需要將他們maven私服遷移到我們的私服上去,因為網絡環境不通,所以不能建代理倉庫過去,下面介紹一種很簡單的辦法。
nexus介紹
1、nexus安裝文件
nexus,下載后包含兩個部分,一部分是nexus,主要包含運行時需要的文件,比如依賴的jar包、啟動文件等;另一部分是sonatype-work,主要包含nexus生成的配置文件、倉庫文件(包文件)、日志文件等。
2、nexus倉庫類型
nexus的倉庫類型有三種:
1、倉庫組,將各種倉庫聚合在一起的虛擬倉庫組
在配置界面中可以選擇Nexus中的倉庫,將其聚合成一個虛擬的倉庫組,注意,倉庫組所包含的倉庫的順序決定了倉庫組便利其所含倉庫的次序,因此最好將常用的倉庫放在前面,當用戶從倉庫組下載構件的時候,就能經快的訪問到包含構件的倉庫。
2、宿主倉庫,用來發布一些第三方不允許的構件,如商業軟件、自己發布的jar等。
3、代理倉庫,代理遠程的倉庫,如Maven官方中央倉庫,而代理倉庫會間接地從遠程倉庫下載並緩存構件。

解決方案
因為環境網路不通,使用代理倉庫代理遠程倉庫就行不通了,但是代理倉庫會間接地從遠程倉庫下載並緩存構件,可以利用這一屬性,將遠程的倉庫本地化,把構件緩存到本地來。再在環境中搭建一個私服,上傳已經緩存下來的構件,模擬遠程倉庫作用。
獲取待遷移的構件
在一個網絡能夠聯通的環境中,搭建本地私服,不管是在Windows環境還是Linux環境,只需要下載安裝包,啟動即可。
1.下載nexus安裝包,解壓后。在bin目錄下找到nexus.sh啟動nexus服務;
2.在nexus中建一個代理倉庫地址,地址配置成對方的倉庫地址(可以是中央倉庫,也可以是對方的私服,這個視具體情況而定)。
3.本地的maven的配置文件settings.xml中的配置成本地搭建的私服地址,在項目中更新依賴的pom文件,將所需的構件下載到本地私服中去。
將構件引入原有的私服
1.在需要搭建的私服的環境中,搭建一個新的私服,並將上述建好的本地私服的sonatype-work文件夾上傳到新私服下,里面有之前加載好的構件等文件。.
2.在原有私服中,新建一個代理倉庫,在配置中配好新私服的地址。這樣就將待遷移構件引入到原有的私服中去了。
