在处理POM之后,Jenkins构建有什么方法可以知道项目的Maven版本号吗?
我有一些项目由Maven控制版本控制,在构建后的工作中,我们想创建一个Debian软件包并调用一些shell脚本。我需要的是Maven以前可以用作Jenkins环境变量的版本号,因此我可以将其传递给构建后操作。
需要明确的是,我 没有 需要知道如何让詹金斯版本号传递到Maven的; 相反,我希望Maven将版本号传递给Jenkins!
经过大量的挖掘(我从未意识到Jenkins的文档记录多么糟糕!),我找到了一个非常简单的解决方案。
Post Step
Execute **system** Groovy script
脚本:
import hudson.model.*; import hudson.util.*; def thr = Thread.currentThread(); def currentBuild = thr?.executable; def mavenVer = currentBuild.getParent().getModules().toArray()[0].getVersion(); def newParamAction = new hudson.model.ParametersAction(new hudson.model.StringParameterValue("MAVEN_VERSION", mavenVer)); currentBuild.addAction(newParamAction);
MAVEN_VERSION现在可以使用通常的方式(${MAVEN_VERSION})将称为的构建环境变量替换为其他构建后步骤。我正在将它用于Git标记等。
MAVEN_VERSION
${MAVEN_VERSION}