Nexus2 私服管理
一、Repositories 倉庫管理
1.1 開啟搜索功能
- 首先需要設置Nexus中的 Central代理倉庫下載遠程索引。
Repositories -> Central 倉庫,點擊 Configuration -> Download Remote Indexes 項設為True , 並保存。開啟下載遠程索引。如圖:

-
索引下載完畢后,在界面左邊導航欄搜索框 Artifact Search 中錄入關鍵字,即可搜索到對應的Maven構件了。
-
Repositories -> Central 倉庫選中,點擊Repair Index,Update Index 可以修復和更新索引
1.2 添加宿主倉庫,代理倉庫,倉庫組等
以添加 jboss 代理資源庫為例
- 點擊左側 Repositories -> Add,在彈出的下拉菜單中,選擇 Proxy Repository
- 填寫信息並保存:
Respository ID:jboss-public-repository-group (可修改)
Respository Name:JBoss Public Maven Repository Group (可修改)
Remote Storage Location:https://repository.jboss.org/nexus/content/groups/public-jboss/ (jboss公布的公開資源庫)
其它項保持默認
1.3 配置阿里雲代理倉庫
Nexus默認遠程倉庫響應慢,而且經常連不上。可以添加阿里雲代理倉庫,具體步驟如下:
- 點擊左側 Repositories -> Add,在彈出的下拉菜單中,選擇 Proxy Repository
- 填寫信息並保存:
Repository ID: aliyun
Repository Name: Aliyun Repository
Remote Storage Location: http://maven.aliyun.com/nexus/content/groups/public/

- 把aliyun添加到倉庫組中,記得aliyun要排在central前邊。
選中倉庫組 Public Repositories,把 Aliyun Repository 從 Availiable Repositories 中拖到Ordered Group Repositories中,放在Central上邊。保存

- 這樣,就可以優先訪問阿里雲倉庫了。
1.4. 上傳第三方jar包
- 選擇 3rd party -> Artifact Upload -> 選擇GAV方式-->填好構建參數-->增加jar包-->上傳,在Browse Storeage查看

二、Security 權限管理
Nexus是基於權限做訪問控制的,服務器的每一個資源都有對應的權限來控制,因此用戶執行特定的操作時就必須擁有必要的權限。管理員必須以角色的方式將權限賦予Nexus用戶。用戶可以被賦予一個或者多個角色,角色可以包含一個或多個權限,角色還可以包含一個或者多個其他角色
2.1. 為Nexus配置Releases和Snapshots的權限
小知識:release和snapshot 的差異點
Releases和Deployment Policy設置為:Disable Redeploy
Snapshot中的Deployment Policy這個選項設置為:Allow Redeploy
-----意思是:Maven-releases 版本默認是不能覆蓋的,嘗試將相同版本號的jar 放入會報錯。
- 添加權限
在Security 下的Privileges 菜單中,點擊Add按鈕,添加release和snapshots權限,具體配置如下圖:

- 建立角色
在Security 下的Role 菜單中,點擊Add按鈕,添加release和snapshots角色,具體配置如下圖:

- 和用戶進行綁定
在Security 下的Users 菜單中,選擇deployment用戶 添加剛剛建立的權限:

補充:預定義用戶
admin:該用戶擁有Nexus的全部權限,默認密碼為admin123。
deployment:該用戶能夠訪問Nexus,瀏覽倉庫內容、搜索、上傳部署構件,但是不能對Nexus進行任何配置,默認密碼為deployment123。
anonymous:該用戶對應了所有未登錄的匿名用戶,它們可以瀏覽倉庫並進行搜索。
三、Scheduled Tasks 調度任務
Nexus提供了一系列可配置的調度任務來方便用戶管理系統。用戶可以設定這些任務運行的方式,例如每天、每周等。調度任務會在適當的時候在后台運行。
Nexus包含了以下幾種類型的調度任務:
o Download Indexs:為代理倉庫下載遠程索引。
o Empty Trash:清空Nexus的回收站,一些操作實際是將文件移到了回收站中。
o Evict Unused Proxied Items From Repository Caches:刪除代理倉庫中長期未被使用的構件緩存。
o Expire Repository Cache:Nexus為代理倉庫維護了遠程倉庫的信息以避免不必要的網絡流量,該任務清空這些信息以強制Nexus去重新獲取遠程倉庫的信息。
o Publish Indexs:將倉庫索引發布成可供m2eclipse和其他Nexus使用的格式。
o Purge Nexus Timeline:刪除Nexus的時間線文件,該文件用於建立系統的RSS源。
o Rebuild Maven Metadata Files:基於倉庫內容重新創建倉庫元數據文件maven-metadata.xml,同時重新創建每個文件的校驗和md5與sha1。
o ReIndex Repositories:為倉庫編纂索引。
o Remove Snapshots From Repositories:以可配置的方式刪除倉庫的快照構件。
o Synchronize Shadow Repository:同步虛擬倉庫的內容(服務基於Maven1)。
3.1 建立一個調度任務,
- 單擊左邊導航菜單中的“Scheduled Tasks”,然后再右邊的界面上單擊Add按鈕,按照頁面上的提示填寫相關內容。比如建立一個每個月更新一次中央倉庫索引的任務:

小問題
有時局域網里架構的Nexus服務器,並不能訪問外網
解決辦法:
- 開發人員的機器通常是能上網的,先修改本機settings.xml中鏡像為阿里雲鏡像倉庫;
- 待項目編譯完成,將本機 "當前用戶.m2\repository"下的文件復制到Nexus私服的sonatype-work\nexus\storage\central 目錄下。
- 登錄Nexus管理界面,手動更新索引,其他開發人員即可使用私服JAR。
Nexus參考資料:
產品主頁:https://www.sonatype.com/nexus-repository-oss
下載頁面:https://www.sonatype.com/download-oss-sonatype
開源地址:https://github.com/sonatype/nexus-public
官方文檔:https://help.sonatype.com/display/NXRM3/
插件列表:http://exchange.sonatype.com/list
White Papers:https://www.sonatype.com/learn-white-papers