日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網營銷解決方案
在Monorepo中,如何使用Maven對多個微服務進行版本控制?

項目部署的每一段代碼都必須具有唯一的版本,這一點至關重要,它可以幫助您跟蹤客戶端的運行情況,標記部署的更改,并使你的工作變得輕松得多——特別是當你在半夜嘗試了解客戶端站點上運行的更改時。

成都創(chuàng)新互聯(lián)堅持“要么做到,要么別承諾”的工作理念,服務領域包括:網站建設、網站設計、企業(yè)官網、英文網站、手機端網站、網站推廣等服務,滿足客戶于互聯(lián)網時代的銅官網站設計、移動媒體設計的需求,幫助企業(yè)找到有效的互聯(lián)網解決方案。努力成為您成熟可靠的網絡建設合作伙伴!

在開發(fā)微服務時,它的重要性是之前的兩倍。通常,你單獨部署的服務,你是知道服務使用哪個依賴項的哪個版本。而許多開發(fā)人員面臨的需求是如何在依賴項發(fā)生變化時自動(或手動)更新它們。

在我的一個項目中有一個單獨的存儲庫,包含所有的服務,并分別構建和部署。而作為我們持續(xù)集成和部署的一部分,我們希望只構建被更改的服務或其依賴項之一已更改的服務,并且還要確保很容易向系統(tǒng)添加新服務。

然后我找到了 Versions Maven 插件,它可以用來自動更新 Maven 項目的版本,并確保自動更新所有依賴它的其他項目。

本次示例項目提供了三種服務。service2依賴于service1 、services3 依賴于 service1 和 service2。

每個服務都有一個包含自己POM文件的文件夾,每個子服務都有一個子文件夾。如下圖所示:

??

我需要一個中心位置來管理所有的服務版本,所以我添加了以下到主(聚合器) pom.xml:


. . .

1.1-SNAPSHOT
2.1-SNAPSHOT
3.1-SNAPSHOT

當服務版本改變時,我想自動更新服務 pom.xml 文件中的版本,所以我在聚合器 pom.xml 中添加了以下內容:


. . .

0
generate-sources
none
-invalid-
. . .




org.codehaus.mojo
versions-maven-plugin
2.7


${version.phase}

set

update-version

false
${service.name}*
${service.version}





我添加了三個新屬性,可以通過每個單獨的服務進行設置:

  • version.phase -版本插件運行階段。我需要在編譯之前運行它,因此我定義了一個名為 version.update 的新屬性。默認設置為一個不存在的階段,這樣版本控制將只針對我需要它們運行的服務運行。
  • service.name -服務名稱。因為想要所有子項目具有相同的版本,這里使用了$ {service.name}。
  • service.version-設置服務版本。

接下來在每個服務(service1\pom.xml)添加下面幾行:


service1
${version.update.enable}
${service1.version}

現(xiàn)在每個服務都定義了它的名稱(與目錄相同),設置 version.phase 使用 version.update.enable(其被設置 generate-sources)和設置該版本的值為在根目錄 pom.xml 中定義的屬性。

現(xiàn)在,如果你更新版本運行 MVN 編譯版本將會自動更新:

??

使用這種方法,我們能夠向所有現(xiàn)有的微服務添加版本控制,并輕松地創(chuàng)建新服務。這樣,所有依賴版本的自動版本更新就完成了。


新聞名稱:在Monorepo中,如何使用Maven對多個微服務進行版本控制?
本文來源:http://www.dlmjj.cn/article/cdscehg.html