1. 程式人生 > >ubuntu下使用Nexus搭建Maven私服

ubuntu下使用Nexus搭建Maven私服

專業 執行命令 點擊 代理 都是 roo 系統文件 update in 連接

ubuntu下使用Nexus搭建Maven私服

1、私服簡介:

私服是架設在局域網的一種特殊的遠程倉庫,目的是代理遠程倉庫及部署第三方構件。有了私服之後,當 Maven 需要下載構件時,直接請求私服,私服上存在則下載到本地倉庫;否則,私服請求外部的遠程倉庫,將構件下載到私服,再提供給本地倉庫下載。

技術分享圖片技術分享圖片

我們可以使用專門的 Maven 倉庫管理軟件來搭建私服,比如:Apache Archiva,Artifactory,Sonatype Nexus。這裏我們使用 Sonatype Nexus。

2 . 安裝Nexus

Nexus 專業版是需要付費的,這裏我們下載開源版 Nexus OSS。

Nexus下載地址:http://www.sonatype.org/nexus/go

技術分享圖片

將下載好的壓縮包放到目標服務器,進行解壓

技術分享圖片

解壓之後在目錄裏面會得到nexus-2.14.3-02和sonatype-work這兩個文件夾,其中nexus-2.14.3-02是Nexus的系統文件,sonatype-work是Maven私服的工作目錄,我們上傳和下載的jar都在這裏面;

接下來,我們要去改Nexus的運行端口,以免啟動時端口沖突,進入nexus-2.14.3-02裏面的conf目錄,修改nexus.properties這個文件

技術分享圖片

因為Maven存放的是jar包,在上傳時需要編譯,所以需要配置jdk的路徑

進入bin目錄下的jsw中的conf,修改wrapper.conf這個文件

技術分享圖片

配置完jdk的路徑後,可以使用bin目錄下的nexus腳本(其實是使用同級目錄下的nexus.bat操作nexus)啟動nexus服務

技術分享圖片

執行時會有相應的提示;

Nexus運行時,日誌會在logs目錄下打印,出現問題是別忘了去看看日誌;

服務開啟之後,找個瀏覽器訪問http://192.168.100.52:8081/nexus IP輸入你自己的,

3、簡單的使用:

技術分享圖片

登陸Nexus,默認的用戶名是:admin、密碼是:admin123

技術分享圖片

介紹一下這些倉庫都是什麽:

3rd parth:第三方庫,主要存放一些第三方的jar包;

Apached Snapshots:apache的開發版本的jar倉庫;

Central:中央倉庫,這裏存放的是中央倉庫的jar包;

Central M1 shadow: 這是中央倉庫的一個虛擬倉庫;

Releases:這是我們上傳私服時的倉庫,存放的是穩定版本的jar包;

Snapshots:這是存放開發版本的jar包;

Public repositories:這是一個倉庫組,可以把上述的倉庫添加到這個倉庫組中;

接下來,就要下載索引了,沒有索引,私服就沒法去外網的Maven中央倉庫中下載jar包了,需要跟新的有Central、Apached Snapshots這兩個庫

技術分享圖片

在頁面上下載,我想你也看到這,下面有個update index的選項,一般來說,中央倉庫的索引每周會更新一次,我們可以每個月更新一次就行了,第一次下載的時間比較長,比較目前的索引達到了2個多G、可以在Scheduler tasks頁面上看更新任務的進度:

技術分享圖片

當然,也可以采取手動更新的方式更新索引

到中心倉庫下載最新版本的索引文件

http://repo.maven.apache.org/maven2/.index/

拉到最後下載nexus-maven-repository-index.gz

nexus-maven-repository-index.properties這兩個文件

技術分享圖片

其中nexus-maven-repository-index.properties如果沒法下載,就只能點擊進去復制了;

出了這兩個文件,還需要一個indexer-cli-5.1.1.jar來解壓

技術分享圖片

將這三個文件放到同一文件夾中,並執行

java -jar indexer-cli-5.1.1.jar -u nexus-maven-repository-index.gz -d indexer

這句命令開始解壓,可能時間有點長,估計要20多分鐘;

解壓完成後,將indexer(解壓時會自動創建這個文件夾)下的所以文件copy到sonatype-work/nexus/indexer/central-ctx目錄下,重啟Nexus

至此,Nexus配置Maven私服就完成了;

附:Nexus開機自啟

1、 在/etx/init.d中新增可執行腳本nexus,nexus內容如下:

技術分享圖片

其中紅色框中的內容必須要加,這個是系統識別開機自啟的依據

因為nexus不支持root啟動

技術分享圖片

所以,在啟動時切換到普通用戶來啟動

2、 配置啟動級別:

1、/etx/init.d中新增可執行腳本nexus後並不會添加到service服務器管理器中,需要執行命令:update-rc.d nexus dafaults 來添加到service服務器管理器中;

2、配置nexus的啟動級別:

技術分享圖片

註意:一開始使用update-rc.d nexus enable時,在rc2.d中生成的軟連接是S20nexus這與我們想要的S99nexus相差有點遠,因為我們是需要nexus最後啟動的,而根據啟動級別的規則,最小(0-99)的最先啟動,所以我們要把軟連接改為S99nexus;

所以手動創建軟連接:

技術分享圖片

這樣只要重啟機器就能夠實現nexus自動啟動了

ubuntu下使用Nexus搭建Maven私服