Nexus3 功能介绍
Nexus介紹
Nexus是一個強大的Maven倉庫管理器,它極大地簡化了本地內部倉庫的維護和外部倉庫的訪問。 如果使用了公共的Maven倉庫服務器,可以從Maven中央倉庫下載所需要的構件(Artifact),但這通常不是一個好的做法。
正常做法是在本地架設一個Maven倉庫服務器,即利用Nexus私服可以只在一個地方就能夠完全控制訪問和部署在你所維護倉庫中的每個Artifact。
Nexus在代理遠程倉庫的同時維護本地倉庫,以降低中央倉庫的負荷,節省外網帶寬和時間,Nexus私服就可以滿足這樣的需要。
Nexus是一套“開箱即用”的系統不需要數據庫,它使用文件系統加Lucene來組織數據。
Nexus支持WebDAV與LDAP安全身份認證。
Nexus還提供了強大的倉庫管理功能,構件搜索功能,它基于REST,友好的UI是一個extjs的REST客戶端,它占用較少的內存,基于簡單文件系統而非數據庫。
為什么要構建Nexus私服?
如果沒有Nexus私服,我們所需的所有構件都需要通過maven的中央倉庫和第三方的Maven倉庫下載到本地,而一個團隊中的所有人都重復的從maven倉庫下載構件無疑加大了倉庫的負載和浪費了外網帶寬,如果網速慢的話,還會影響項目的進程。很多情況下項目的開發都是在內網進行的,連接不到maven倉庫怎么辦呢?開發的公共構件怎么讓其它項目使用?這個時候我們不得不為自己的團隊搭建屬于自己的maven私服,這樣既節省了網絡帶寬也會加速項目搭建的進程,當然前提條件就是你的私服中擁有項目所需的所有構件。
nexus私服的優點:
1)加速構建; 2)節省帶寬; 3)節省中央maven倉庫的帶寬; 4)穩定(應付一旦中央服務器出問題的情況) 5)控制和審計; 6)能夠部署第三方構件; 7)可以建立本地內部倉庫 8)可以建立公共倉庫
Maven與Nexus的之間關系
這個問題從Maven的第二個用處說起,依賴管理,通過在Pom中指定坐標的形式將jar引入到項目中。那這個過程,要經歷怎樣一個流程呢?從哪里尋找jar?下載的jar放到哪里?
將這個問題順下來,就知道nexus和maven的關系了。
從哪里找到jar?項目用到的jar又存放在哪里?這引出了倉庫的概念,maven通過倉庫來統一管理各種構件。Maven的倉庫分為本地倉庫和遠程倉庫
nexus只是maven私有倉庫的其中一種
私服介紹
私服是指私有服務器,是假設在局域網的一種特殊的遠程倉庫,目的是代理遠程倉庫及部署第三方構建.有了私服之后,當maven需要下載構件時,直接請求私服,私服上存在則下載到本地倉庫;否則,私服請求外部的遠程倉庫,將構件下載到私服,在提供給本地倉庫下載.
1、主頁界面
1.1? Search
這個就是類似Maven倉庫上的搜索功能,就是從私服上查找是否有哪些包。
注意:在Search這級是支持模糊搜索的
1.2 ?Browse
查看所有的倉庫名
點開一個倉庫,可以看到上傳的包
1.3 Upload(顧名思義就是上傳jar包到私服中,可以選擇其中一個hosted倉庫)
注意:通過頁面直接上傳的方式只是上傳了jar包,若這個jar通過Maven依賴了其他jar,那其他項目在下載這個jar時無法取得它的依賴。所以,除非這個jar沒有任何依賴,否則還是推薦通過命令行或者IDE的方式上傳jar包,這樣才會把pom一并上傳。
2、Server Adminstration And configuration
看到這選項是要進行登錄的,在右上角點擊“Sign In”的登錄按鈕,輸入admin/admin123,登錄成功之后,即可看到此功能,如圖所示:
2.1? Repository
2.1.1 Blob Stores
文件存儲的地方,創建一個目錄的話,對應文件系統的一個目錄,如圖所示我已經創建了兩個額外的存儲塊:后面創建倉庫的時候可以選擇要使用的存儲塊
2.1.2?Repositories 倉庫分為三種:Proxy、hosted、group
2.1.2.1 Proxy
這里就是代理的意思,代理中央Maven倉庫,當PC訪問中央庫的時候,先通過Proxy下載到Nexus倉庫,然后再從Nexus倉庫下載到PC本地。
這樣的優勢只要其中一個人從中央庫下來了,以后大家都是從Nexus私服上進行下來,私服一般部署在內網,這樣大大節約的寬帶。
創建Proxy的具體步驟
1、點擊左上角的“Create Repositories”按鈕
2、選擇要創建的類型
3、填寫詳細信息
Name:就是為代理起個名字,我取名為“aliyun”
Remote Storage: 代理的地址,Maven的地址為:?https://repo1.maven.org/maven2/,但Maven官方的代理訪問速度太慢了,使用阿里云的Maven代理更好,http://maven.aliyun.com/nexus/content/groups/public
Blob Store: 選擇代理下載包的存放路徑,我選擇的是之前創建的一個。
2.1.2.2 Hosted
Hosted是宿主機的意思,用于將第三方的Jar或者我們自己的jar放到私服上。
Hosted有三種方式,Releases、SNAPSHOT、Mixed
Releases: 一般是已經發布的Jar包
Snapshot: 未發布的版本
Mixed:混合的
Hosted的創建和Proxy類似,類型需選擇maven2(hosted)。
注意:Deployment Pollcy,我們需要把策略改成“Allow redeploy”,以允許重復發布覆蓋同版本的jar包。
2.1.2.3 Group
能把多個倉庫合成一個倉庫來使用,把上幾步創建的代理倉庫和宿主倉庫都加入到“maven-public”倉庫組中:
2.2 ?Security
包含用戶、角色、權限的配置。
2.3? Support
包含日志及數據分析。
2.4? System
包含API(Nexus這個API文檔貌似是用swagger做的)、郵件服務器,設置調度任務等。
總結
以上是生活随笔為你收集整理的Nexus3 功能介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 前端-回到顶部效果总结
- 下一篇: 如何将ThinkPad T490拆机加内