簡體   English   中英

Maven 父子pom自增版本使用Azure devops

[英]Maven parent and child pom auto-increment version using Azure devops

我在 JHipster 上構建了多個微服務,這些微服務過去是使用 Maven 單獨構建的。 現在我們有一個父 pom,它將擁有所有可以多次構建的 API 的所有公共依賴項,並多次部署父 pom 的相同版本。 所有的 API 都將使用它作為父 pom。 問題是我們使用 Azure DevOps 進行構建過程,其中常見的工件被發送到 Azure 工件,並且版本是不可變的。 所以如果要構建這個父pom並將其打包到Azure Artifacts中,我需要弄清楚以下內容。

  1. 如何根據所做的更改自動增加或不自動增加父 pom 的版本。 為此,我嘗試使用 maven-release-plugin 並自動增加版本,但如果有任何最佳實踐,請告訴我,我現在使用默認值。計划在child pom 也是如此,但不確定這是否是正確的方法
  2. 如何確保使用此父 pom 的子項目能夠在發布期間自動增加版本。

PS:早些時候我們遇到了一個問題,即在公共存儲庫中進行任何更改,需要開發人員在構建之前手動調整 pom 的版本,因為 Azure Artifacts 不允許構建相同的版本並將其部署到 Artifacts。

您可以嘗試在構建管道運行期間為父 pom 和每個子 pom 的版本生成一個變量。 例如: PARENT_PACKAGE_VERSIONCHILD_01_PACKAGE_VERSIONCHILD_02_PACKAGE_VERSION 、 ...

變量可以通過一些量和變量組合(包括自定義變量、 預定義變量和一些表達式)。 這樣,您幾乎可以盡可能自由地設置版本號。

pom.xml文件中,您可以使用變量名稱填充版本字段。

在此處輸入圖像描述

在管道中,設置一個 shell 腳本,使用if條件判斷是否改變變量的值。 然后用pom.xml文件中的實際值替換變量名。

例如:

sed -i 's/PACKAGE_VERSION/$(PACKAGE_VERSION)/g' pom.xml

完成上述步驟后,構建並發布 Maven package。

對於父 pom 的版本,為了避免發布相同版本號到 Azure Artifacts 導致的錯誤,可以設置更多節點的版本號,例如<MajorVersion>.<MinorVersion>.<BatchVersion> MajorVersionMinorVersion可能不會經常更改。 當父package和/或子包中發生任何更新時,可以更改或自動增加 BatchVersion。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM