企业级微服务构建-01搭建和使用Maven私有仓库(Nexus)-29上传组件
親歷的企業級微服務的完整構建過程-系列文章目錄
本人參與了這次的企業級微服務的完整構建,想要記錄下來以便以后復習,同時也想分享給小伙伴們,拋磚引玉,歡迎大家提出自己的意見和建議,大家一起探討一起成長。以下為該系列所有文章的鏈接:
搭建和使用Maven私有倉庫(Nexus)-系列文章目錄
說明:
- 以下部分模塊,絕大多數人,在日常工作中都是用不到的,所以我就沒有介紹,畢竟時間是最重要的成本,沒必要花大量時間在我們用不到的內容上。
- 下面的“1 通用”章節,系列文章中的每一篇內容都相同,介紹一些背景、約定和官網鏈接等,大家只要知道這些內容了,就不用每篇文章都去看了。
本文目錄
- 親歷的企業級微服務的完整構建過程-系列文章目錄
- 搭建和使用Maven私有倉庫(Nexus)-系列文章目錄
- 正文
- 1 通用
- 1.1 前言
- 1.2 約定
- 1.3 官方文檔
- 2 上傳組件
- 2.1 概述
- 2.2 上傳前注意事項
- 2.3 上傳方法
- 2.4 Maven - 上傳攜帶 Artifacts 信息的 pom 文件
- 2.5 高級功能
正文
1 通用
1.1 前言
在構建微服務之前,需要先做一些準備工作,比如Maven私有倉庫的管理。因為有些微服務模塊是作為公共組件被其他微服務引用的,這些公共的微服務,就要設置為依賴,并用Maven倉庫管理起來,將自定義的依賴上傳到Maven中央倉庫并不是一個明智的選擇。原因有3個:
綜上,我們最好是搭建自己的私有Maven倉庫,而當前最流行的就是 Sonatype Nexus Repository Manager,以下簡稱 Nexus。
1.2 約定
1.3 官方文檔
提供Nexus的官方文檔:https://help.sonatype.com/repomanager3/
官方文檔包含了系統要求、搭建方法,以及各種操作方法等,內容已經非常全面了。
2 上傳組件
可用于:OSS,Pro
需要的訪問權限:nx-component-upload 或 nx-all
2.1 概述
當你的構建使用私有的或自定義的依賴時,因為這些依賴無法在公共倉庫中下載,所以需要將它們上傳到一個私有倉庫中,以便開發者們可以下載使用。Nexus可以非常簡單地將這類第三方依賴,在 UI 界面上 上傳到你的托管倉庫中。
2.2 上傳前注意事項
注: 不同倉庫格式和各自對應的有效文件類型參考表
| Apt | .deb, .udeb | No |
| Maven (release only) | 沒有限制,但通常使用這些類型:.pom, .jar, and .zip | Yes |
| Helm | .tgz, .tgz.prov | No |
| npm | .tgz | No |
| NuGet | .nupkg | No |
| PyPI | .tar.gz | No |
| R | .tar.gz, .tgz | No |
| Raw | 沒有限制 | Yes |
| RubyGems | .gem | No |
| Yum | 沒有權限策略,或者 .rpm 和 .drpm | No |
2.3 上傳方法
點擊“Upload”菜單,右側的主功能面板顯示“上傳頁面”,里面顯示了所有的可上傳依賴的托管倉庫列表
點擊右側列表中的“maven-releases”,進入上傳頁面
填寫頁面中的所有必填字段,然后點擊“Upload”按鈕,即可上傳
上傳完成后,會有提示信息“Component uploaded to the repository, view it now”
點擊“view it now”鏈接,即可查看剛剛上傳的依賴:
注意:這里是直接跳轉到“Search”菜單了。
額外說明下“Classifier”,如下圖所示
當填寫了 Classifier 的值為 test ,然后點擊“Upload”按鈕,然后我們點擊“view it now”鏈接去查看該依賴:
發現該依賴的名稱是“javaU-1.0.3-test.jar”,多了個后綴名 -test。
上圖中,我們發現引用該依賴的 XML 文本,artifactid 值沒變,多了一個 classifier 屬性。
綜上所述,這個 classifier 屬性,中文意思是 分類器,其實就是給 依賴名稱添加了一個后綴,后綴值就是 classifier屬性值。然后在項目的 pom.xml 中引用該依賴時,多了個 classifier 屬性。其他也沒啥。
2.4 Maven - 上傳攜帶 Artifacts 信息的 pom 文件
上傳一個 jar包依賴的同時,上傳該 依賴 配套的 pom.xml 文件,則 Nexus 會直接讀取和解析 pom.xml 中的坐標信息??梢钥吹较聢D中的提示信息“Component details will be extrated from the provided POM file(組件詳情將會從提供的 POM 文件中提取)”:
注意:上圖中的“Extension”必填,且必須填寫“pom”,然后 Nexus 才能知道,坐標信息 要從 pom 文件中解析和獲取,而不是從 UI 中獲取。
然后,可以看下上傳的 pom.xml 中的一些內容:
<parent><groupId>com.el</groupId><artifactId>el_shop</artifactId><version>1.0.0</version></parent><artifactId>el_admin</artifactId>到這里已經很明顯了,剛剛上傳到依賴 el_admin ,確實使用了 配套上傳的 pom.xml 中的信息。
2.5 高級功能
批量上傳依賴,自動從 jar 文件中提取依賴,參考 REST and Integration API 中的組件端點。
總結
以上是生活随笔為你收集整理的企业级微服务构建-01搭建和使用Maven私有仓库(Nexus)-29上传组件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c语言程序设计实验教程实验报告,C语言程
- 下一篇: CMOS/CCD图像传感器的工作原理