[英]Is it possible to extract the Maven Version within a VSTS Build Plan or Release
目前使用 VSTS 使用 Maven 構建 Spring Boot 應用程序。 試圖弄清楚如何在構建和發布過程中使用/獲取 Maven 版本。
可能嗎?
這是一個腳本,它將獲取 maven 的版本(給定路徑)並將版本號存儲在一個變量中,供其他任務稍后在構建中使用。
$mvn = "$Env:M2_HOME\bin\mvn.bat"
$version = (& $mvn -v | select-string -pattern '(Apache\sMaven\s)([^\s]*)').Matches.Groups[2].Value
Write-Output ("##vso[task.setvariable variable=MavenVersion;]$version")
如最后一行所示,環境變量的名稱是 MavenVersion。 您可以像在后續腳本或構建過程中使用任何其他環境變量一樣使用此變量。
我在 Hosted Build 機器上測試了這個腳本,所以 Maven 的路徑在 M2_HOME 下並以 .bat (Maven 2) 結尾。 您可能需要添加更多代碼以更通用地找出 Maven 的路徑。
這是python中的腳本:
from xml.etree import ElementTree as ET
tree = ET.parse('pom.xml')
#print 'BuildNumber: ', BuildNumber
value =tree.find('./{http://maven.apache.org/POM/4.0.0}version')
print 'Found value:', value.text
print "##vso[task.setvariable variable=POM_VERSION;]", value.text
這在基於 linux 的構建代理上運行良好。 輸出變量是POM_VERSION
。
最干凈的方法是這樣的:
mvn -v | head -1 | cut -d ' ' -f 3
上面的代碼片段將打印:例如3.8.5
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.