目前正在使用VSTS与Maven一起构建Spring Boot应用程序。试图弄清楚如何在构建和发布过程中使用/获取Maven版本。
有可能吗?
答案 0 :(得分:2)
这是一个脚本,它将获取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的路径。
答案 1 :(得分:0)
这是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
。