Nexus下载、安装与使用
下載Nexus
請(qǐng)根據(jù)自己需要選擇對(duì)應(yīng)版本
Nexus 3.x:下載鏈接地址
Nexus 2.x: 下載鏈接地址
這里以Nexus 2.15.1-02版本為例
將下載 Nexus 安裝包解壓到本地磁盤,可獲得 nexus-2.15.1-02 和 sonatype-work 2 個(gè)目錄,如下圖。
其中:
nexus-2.15.1-02:該目錄中包含了 Nexus 2.x 運(yùn)行所需要的文件,如啟動(dòng)腳本、依賴 jar 包等。
sonatype-work:該目錄中包含了 Nexus 2.x 生成的配置文件、日志文件等。
nexus-2.15.1-02文件夾包含以下內(nèi)容
進(jìn)入對(duì)應(yīng)的 \nexus-2.15.1-02\bin\jsw 文件夾,根須操作系統(tǒng)版本選擇合適的目錄,由于我的操作系統(tǒng)是 Windows 10 64 位,所以我選擇 windows-x86-64 目錄,如下圖所示。
其中:
- console-nexus.bat:啟動(dòng) Nexus 并在 DOS 命令行中展示啟動(dòng)過程。
- install-nexus.bat:將 Nexus 安裝為 Windows 服務(wù),開機(jī)自動(dòng)啟動(dòng)。
- start-nexus.bat:啟動(dòng) Nexus。
- stops-nexus.bat:停止 Nexus。
- uninstall-nexus.bat:與 install-nexus.bat 相對(duì)應(yīng),負(fù)責(zé)卸載 Nexus 服務(wù)。
以管理員身份運(yùn)行install-nexus.bat安裝nexus服務(wù),安裝后以管理員身份運(yùn)行start-nexus.bat啟動(dòng)nexus服務(wù)。
訪問 http://localhost:8081/nexus,結(jié)果如下圖,則表示服務(wù)啟動(dòng)成功,否則表示服務(wù)啟動(dòng)失敗。
可能出現(xiàn)的錯(cuò)誤
若是安裝服務(wù),并且正常啟動(dòng)后無(wú)法在瀏覽器中打開對(duì)應(yīng)主頁(yè),可能是8081端口被占用,或者Nexus安裝目錄 bin\jsw\conf\wrapper.conf中的java配置錯(cuò)誤導(dǎo)致啟動(dòng)失敗(兩種錯(cuò)誤,錯(cuò)誤1:版本錯(cuò)誤,錯(cuò)誤2:路徑錯(cuò)誤)。
端口被占解決方法:打開\nexus-2.15.1-02-bundle\nexus-2.15.1-02\conf目錄下的nexus.properties文件,修改端口application-port=8181,如下圖。
版本配置錯(cuò)誤解決方法:打開\nexus-2.15.1-02-bundle\nexus-2.15.1-02\bin\jsw\conf目錄下的wrapper.conf文件,修改配置文件
wrapper.java.command=D:/Java/jdk1.8.0_321/bin/java
Nexus整體介紹
開啟nexus服務(wù)后,在瀏覽器地址中輸入localhost:8081/nexus,出現(xiàn)如下圖結(jié)果表示正常啟動(dòng)。
點(diǎn)擊LogIn登錄,默認(rèn)賬號(hào):admin,密碼:admin123,登錄成功后打開配置文件。
在倉(cāng)庫(kù)列表中,每個(gè)倉(cāng)庫(kù)都具有一系列屬性:
- Type:倉(cāng)庫(kù)的類型,Nexus 中有 4 中倉(cāng)庫(kù)類型:group(倉(cāng)庫(kù)組)、hosted(宿主倉(cāng)庫(kù))、proxy(代理倉(cāng)庫(kù))以及 virtual(虛擬倉(cāng)庫(kù))。
- Format:倉(cāng)庫(kù)的格式。
- Policy:倉(cāng)庫(kù)的策略,表示該倉(cāng)庫(kù)是發(fā)布(Release)版本倉(cāng)庫(kù)還是快照(Snapshot)版本倉(cāng)庫(kù)。
- Repository Status:倉(cāng)庫(kù)的狀態(tài)。
- Repository Path:倉(cāng)庫(kù)的路徑。
由上圖可知,Nexus 2.x 默認(rèn)創(chuàng)建了 6 個(gè)倉(cāng)庫(kù),我們稱它們?yōu)?Nexus 內(nèi)置倉(cāng)庫(kù)。
Maven Central:該倉(cāng)庫(kù)用來(lái)代理 Maven 中央倉(cāng)庫(kù),其策略為 Release,只會(huì)下載和緩存中央倉(cāng)庫(kù)中的發(fā)布版本的構(gòu)件。
Releases:策略為 Release 的宿主倉(cāng)庫(kù),用來(lái)部署公司或組織內(nèi)部的發(fā)布版本構(gòu)件。
Snapshots:策略為 Snapshot 的宿主倉(cāng)庫(kù),用來(lái)部署公司或組織內(nèi)部的快照版本構(gòu)件。
3rd party:策略為 Release 的宿主倉(cāng)庫(kù),用來(lái)部署第三方發(fā)布版本構(gòu)件,這些構(gòu)件一般無(wú)法從任何遠(yuǎn)程倉(cāng)庫(kù)中獲得。
Public Repositories:該倉(cāng)庫(kù)組將上述所有存儲(chǔ)策略為 Release 的倉(cāng)庫(kù)聚合并通過統(tǒng)一的地址提供服務(wù)。
Nexus倉(cāng)庫(kù)分類
Nexus 倉(cāng)庫(kù)按照類型(Type)區(qū)分,主要分為以下 3 個(gè)類型:
代理倉(cāng)庫(kù)(proxy):用來(lái)代理遠(yuǎn)程公共倉(cāng)庫(kù),如 Maven 中央倉(cāng)庫(kù)、JBoss 遠(yuǎn)程倉(cāng)庫(kù)。
宿主倉(cāng)庫(kù)(hosted):又稱 Nexus 本地倉(cāng)庫(kù),該倉(cāng)庫(kù)通常用來(lái)部署本地項(xiàng)目所產(chǎn)生的構(gòu)件。
倉(cāng)庫(kù)組(group):用來(lái)聚合代理倉(cāng)庫(kù)和宿主倉(cāng)庫(kù),為這些倉(cāng)庫(kù)提供統(tǒng)一的服務(wù)地址,以便 Maven 可以更加方便地獲得這些倉(cāng)庫(kù)中的構(gòu)件。
為了更加直觀的理解倉(cāng)庫(kù)組、代理倉(cāng)庫(kù)和宿主倉(cāng)庫(kù)的概念,我們通過下圖展示它們的用途和區(qū)別。
由上圖可知:
- Maven 可以直接從宿主倉(cāng)庫(kù)中下載構(gòu)件。
- Maven 也可以從代理倉(cāng)庫(kù)中下載構(gòu)件,代理倉(cāng)庫(kù)會(huì)從遠(yuǎn)程倉(cāng)庫(kù)下載并緩存構(gòu)件。
- Maven 還可以從倉(cāng)庫(kù)組中下載構(gòu)件,倉(cāng)庫(kù)組會(huì)從其包含的宿主倉(cāng)庫(kù)和代理倉(cāng)庫(kù)中獲取構(gòu)件。
創(chuàng)建 Nexus 宿主倉(cāng)庫(kù)
首先,我們需要?jiǎng)?chuàng)建兩個(gè)宿主倉(cāng)庫(kù),分別用來(lái)存儲(chǔ)從本地上傳到 Nexus 的 Snapshot 和 Release 版本的構(gòu)件,操作步驟如下。
1、點(diǎn)擊左側(cè)Repositories進(jìn)入倉(cāng)庫(kù)
2、點(diǎn)擊Add…中Hosted Repository創(chuàng)建宿主倉(cāng)庫(kù)
3、在宿主倉(cāng)庫(kù)配置界面填寫對(duì)應(yīng)信息,之后按save保存?zhèn)}庫(kù)
4、查看倉(cāng)庫(kù)列表可以發(fā)現(xiàn),已經(jīng)創(chuàng)建了對(duì)應(yīng)的倉(cāng)庫(kù)
重復(fù)上述步驟,創(chuàng)建名為osrookie_Release_hosted的倉(cāng)庫(kù)
宿主倉(cāng)庫(kù)配置含義如下:
| Repository ID | 倉(cāng)庫(kù) ID。 |
| Repository Name | 倉(cāng)庫(kù)名稱。 |
| Repository Type | 倉(cāng)庫(kù)的類型,如 hosted、proxy 等等。 |
| Provider | 用來(lái)確定倉(cāng)庫(kù)的格式,一般默認(rèn)選擇 Maven2。 |
| Repository Policy | 倉(cāng)庫(kù)的策略。 |
| Default Local Storage Location | 倉(cāng)庫(kù)默認(rèn)存儲(chǔ)目錄,例如 D:\nexus-2.15.1-02-bundle\sonatype-work\nexus\indexer\osrookie_Snapshot_hosted_ctx。 |
| Override Local Storage Location | 自定義倉(cāng)庫(kù)存儲(chǔ)目錄。 |
| Deployment Policy | 倉(cāng)庫(kù)的部署策略。 |
| Allow File Browsing | 用來(lái)控制是否允許瀏覽倉(cāng)庫(kù)內(nèi)容,一般選擇 true。 |
| Include in Search | 用來(lái)控制該倉(cāng)庫(kù)是否創(chuàng)建索引并提供搜索功能。 |
| Publish URL | 用來(lái)控制是否通過 URL 提供服務(wù)。 |
| Not Found Cache TTL | 緩存某構(gòu)件不存在信息的時(shí)間,默認(rèn)取值為 1440,表示若某一個(gè)構(gòu)件在倉(cāng)庫(kù)中沒有找到,在 1440 分鐘內(nèi)再次接收到該構(gòu)件的請(qǐng)求,則直接返回不存在信息,不會(huì)再次查找。 |
創(chuàng)建代理倉(cāng)庫(kù)
1、點(diǎn)擊左側(cè)Repositories進(jìn)入倉(cāng)庫(kù)
2、點(diǎn)擊Add…中Proxy Repository創(chuàng)建代理倉(cāng)庫(kù)
3、在代理倉(cāng)庫(kù)配置界面填寫對(duì)應(yīng)信息,之后按save保存?zhèn)}庫(kù)
4、查看倉(cāng)庫(kù)列表可以發(fā)現(xiàn),已經(jīng)創(chuàng)建了對(duì)應(yīng)的倉(cāng)庫(kù)
代理倉(cāng)庫(kù)配置中,倉(cāng)庫(kù) ID、倉(cāng)庫(kù)名稱、Provider、Policy 以及 Default Local Storage Location 等配置的含義與宿主倉(cāng)庫(kù)相同,不再贅述。需要注意的是,代理倉(cāng)庫(kù)的 Repository Type 的取值是 proxy。
代理倉(cāng)庫(kù)配置表如下:
| Remote Storage Location | 遠(yuǎn)程倉(cāng)庫(kù)或中央倉(cāng)庫(kù)的地址,它是 Nexus 代理倉(cāng)庫(kù)最重要得配置,必須輸入有效值,通常取值為 https://repo1.maven.org/maven2/。 |
| Download Remote Indexes | 是否下載遠(yuǎn)程倉(cāng)庫(kù)的索引。 |
| Auto Blocking Enabled | 是否啟用自動(dòng)阻止,即當(dāng) Nexus 無(wú)法連接中央倉(cāng)庫(kù)或遠(yuǎn)程倉(cāng)庫(kù)時(shí),是否一直等待。取值為 true 表示不再等待,直接通知客戶端無(wú)法連接,并返回。 |
| File Content Validation | 是否啟用文件內(nèi)容校驗(yàn)。 |
| Checksum Policy | 配置校驗(yàn)和出錯(cuò)時(shí)的策略,用戶可以選擇忽略、警告、記錄警告信息或拒絕下載等多種策略。 |
| Artifact Max Age | 構(gòu)件緩存的最長(zhǎng)時(shí)間,對(duì)于發(fā)布版本倉(cāng)庫(kù)來(lái)說,默認(rèn)值為 -1,表示構(gòu)件緩存后,就一直保存著,不再重新下載。對(duì)于快照版本倉(cāng)庫(kù)來(lái)說,默認(rèn)值為 1440 分鐘,表示每隔一天重新緩存一次代理的構(gòu)件。 |
| Metadata Max Age | 倉(cāng)庫(kù)元數(shù)據(jù)緩存的最長(zhǎng)時(shí)間。 |
| Item Max Age | 項(xiàng)目緩存的最長(zhǎng)時(shí)間。 |
創(chuàng)建Nexus倉(cāng)庫(kù)組
下面我們將創(chuàng)建一個(gè)倉(cāng)庫(kù)組,并將剛剛創(chuàng)建的 3 個(gè)倉(cāng)庫(kù)都聚合起來(lái),操作步驟如下。
點(diǎn)擊倉(cāng)庫(kù)列表上方的 Add… 按鈕,在下拉菜單中選擇 Repository Group,如下圖。
1、點(diǎn)擊左側(cè)Repositories進(jìn)入倉(cāng)庫(kù)
2、點(diǎn)擊Add…按鈕下的Repository Group按鈕進(jìn)入倉(cāng)庫(kù)組配置
3、在倉(cāng)庫(kù)組配置界面,填寫對(duì)應(yīng)信息,并將 osrookie_central_proxy、osrookie_Release_hosted 和 osrookie_Snapshot_hosted 3 個(gè)倉(cāng)庫(kù)添加到倉(cāng)庫(kù)組中,最后點(diǎn)擊 Save 按鈕進(jìn)行保存,如下圖。
4、查看倉(cāng)庫(kù)列表可以發(fā)現(xiàn),已經(jīng)創(chuàng)建了對(duì)應(yīng)的倉(cāng)庫(kù)組
Nexus索引與搜索
我們知道,Maven 中央倉(cāng)庫(kù)為用戶提供了多達(dá)數(shù)十萬(wàn)構(gòu)件,而 Nexus 可以代理所有的遠(yuǎn)程倉(cāng)庫(kù)(包括 Maven 中央倉(cāng)庫(kù)),可見 Nexus 倉(cāng)庫(kù)中構(gòu)件的數(shù)量相當(dāng)龐大。用戶想要在這么多構(gòu)件中,快速的查找自己所需的構(gòu)件,一個(gè)最直接有效的方式就是:搜索。
Nexus 作為一款成熟的倉(cāng)庫(kù)管理工具,它通過維護(hù)倉(cāng)庫(kù)的索引提供了構(gòu)件搜索功能,以便幫助用戶方便快速地找到所需構(gòu)件。
本節(jié)我們將詳細(xì)為您介紹 Nexus 索引以及構(gòu)件搜索功能。
索引
Nexus 能夠遍歷倉(cāng)庫(kù)的所有內(nèi)容,搜集它們的坐標(biāo),校驗(yàn)和以及所包含的 Java 類等信息,然后以索引( nexus-indexer) 的形式保存起來(lái)。Nexus 索引保存在 Nexus 安裝目錄下 \sonatype-work\nexus\indexer 目錄中,該目錄下每個(gè)子目錄都代表 Nexus 中的一個(gè)倉(cāng)庫(kù),用來(lái)存放各個(gè)倉(cāng)庫(kù)的索引 ,如下圖所示。
大多數(shù)的遠(yuǎn)程公共倉(cāng)庫(kù)(例如,中央倉(cāng)庫(kù))都維護(hù)了一個(gè)這樣的索引,因此本地的 Nexus 在下載到這個(gè)索引后,就能在此基礎(chǔ)上為用戶提供構(gòu)件搜索和瀏覽等服務(wù)。需要注意的是,并不是所有的公共倉(cāng)庫(kù)都提供了索引 ,對(duì)于那些沒有提供索引的倉(cāng)庫(kù)來(lái)說,我們是無(wú)法對(duì)其進(jìn)行搜索的。
下載索引
Nexus 索引下載功能默認(rèn)是關(guān)閉的,如果想在 Nexus 中搜索遠(yuǎn)程倉(cāng)庫(kù)中的構(gòu)件,就需要先開啟索引下載功能。
以 osrookie_central_proxy 代理倉(cāng)庫(kù)(代理 Maven 中央倉(cāng)庫(kù))為例,在圖 中 所示的位置就可以控制它的索引下載功能,true 表示開啟索引下載,false 表示關(guān)閉索引下載。
開啟索引下載功能后,右鍵單擊倉(cāng)庫(kù),點(diǎn)擊Update Index更新倉(cāng)庫(kù)索引
點(diǎn)擊導(dǎo)航欄中 Scheduled Tasks 鏈接,查看調(diào)度任務(wù)列表。若 Nexus 正在下載索引,我們就能看到如圖所示位置的任務(wù),其任務(wù)狀態(tài)為 Running。在索引下載完畢后,該任務(wù)就會(huì)消失。
由于 Maven 中央倉(cāng)庫(kù)的內(nèi)容較多,其索引文件比較大,因此 Nexus 下載文件所需的時(shí)間較長(zhǎng),需要我們耐心等待。
索引下載完成后,點(diǎn)擊倉(cāng)庫(kù)列表中的 osrookie_central_proxy 代理倉(cāng)庫(kù),然后在列表下方選擇 Browse Index 選項(xiàng)卡,我們可以看到該倉(cāng)庫(kù)內(nèi)容的樹形結(jié)構(gòu),如圖所示。
寫累了,之后有時(shí)間再寫。。。
總結(jié)
以上是生活随笔為你收集整理的Nexus下载、安装与使用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python 清华镜像_Anaconda
- 下一篇: this表示当前对象简单实例