[英]Maven parent and child pom auto-increment version using Azure devops
我在 JHipster 上構建了多個微服務,這些微服務過去是使用 Maven 單獨構建的。 現在我們有一個父 pom,它將擁有所有可以多次構建的 API 的所有公共依賴項,並多次部署父 pom 的相同版本。 所有的 API 都將使用它作為父 pom。 問題是我們使用 Azure DevOps 進行構建過程,其中常見的工件被發送到 Azure 工件,並且版本是不可變的。 所以如果要構建這個父pom並將其打包到Azure Artifacts中,我需要弄清楚以下內容。
PS:早些時候我們遇到了一個問題,即在公共存儲庫中進行任何更改,需要開發人員在構建之前手動調整 pom 的版本,因為 Azure Artifacts 不允許構建相同的版本並將其部署到 Artifacts。
您可以嘗試在構建管道運行期間為父 pom 和每個子 pom 的版本生成一個變量。 例如: PARENT_PACKAGE_VERSION
、 CHILD_01_PACKAGE_VERSION
、 CHILD_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>
。 MajorVersion和MinorVersion可能不會經常更改。 當父package和/或子包中發生任何更新時,可以更改或自動增加 BatchVersion。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.