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自動啟動了