簡體   English   中英

Maven 帶有自定義變量的工件版本號

[英]Maven artifact version number with custom variable

我在我的 pom 這個部分:

<groupId>com.sample.app</groupId>
<artifactId>simpleapp</artifactId>
<version>1.0.9-${buildNumber}-SNAPSHOT</version>
<packaging>war</packaging>

有沒有什么好的和“maven 方式”來保持這個變量名 ${buildNumber} 在 pom 中的那個地方,就像現在這樣? 我的意思是——當我表演的時候

mvn deploy:prepare deploy:release  -DbuildNumber=${BUILD_NUMBER}

pom.xml 中的此版本部分已更新為(當 BUILD_NUMBER eq: 12 時):

<version>1.0.9-12-SNAPSHOT</version>

這幾乎可以,但這也已提交到存儲庫。 我喜歡這樣一個事實,即在 git 存儲庫中創建了這個標簽:1.0.9-12,但我更喜歡在pom.xml文件中保留我的原始版本格式:

<version>1.0.9-${buildNumber}-SNAPSHOT</version>

這是因為我在公司中添加到人工制品版本的這種愚蠢方法也來自 CI 工具的內部版本號:(

有人可以給我一些提示如何處理嗎?

Maven 發布插件有一個名為developmentVersion的參數,允許您設置發布完成后提交到 git 分支的新版本。

如果您想告訴 Release Plugin 重用您之前使用的版本部分, Build Helper Maven Plugin可以幫助您解析版本。 它創建諸如majorVersionminorVersion之類的屬性,您可以從中構造您喜歡的目標版本。

感謝 JF Meier - 我認為這將解決“我的問題”:

mvn --batch-mode \
-DdevelopmentVersion=1.6.6-\${buildNumber}-SNAPSHOT \
-DreleaseVersion=1.6.6-18 \
release:clean \
release:prepare \
release:perform

我不知道如何使用這個插件:build-helper:parse-version 來獲取主要、次要和增量編號,但我將使用一些 Jenkins 插件從 pom.xml 中提取這些值。 然后我可以動態設置它,自動執行整個操作(構建 + git 標簽 + 上傳到 nexus),結果我的 pom.xml 將使用 ${buildNumber} 變量更新!

謝謝!

更新:

我已經為這個助手插件添加了依賴,最終結果是這樣的:

mvn --batch-mode \
build-helper:parse-version \
-DdevelopmentVersion=\${parsedVersion.majorVersion}.\${parsedVersion.minorVersion}.\${parsedVersion.nextIncrementalVersion}-\${parsedVersion.qualifier} \
-DreleaseVersion=\${parsedVersion.majorVersion}.\${parsedVersion.minorVersion}.\${parsedVersion.incrementalVersion}-31 \
release:clean \
release:prepare \
release:perform

我刪除了這個 ${buildNumber} 因為它不是必需的 - Build Helper Plugin 幫助了我很多 - 我不需要 CI 計划中的任何額外步驟。 現在我有了自動增量,並且在發布期間我可以添加構建計划 ID。

對我來說,情況已解決:-)

暫無
暫無

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

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