从Jenkins 1.460开始,调用getMavenArtifacts()的实例将MavenBuild返回null,而以前可以正常工作。
getMavenArtifacts()
MavenBuild
Jenkins API是否发生了重大更改,或者这是Jenkins错误?
我正在执行的代码是构建后的System Groovy脚本,该脚本将构建的Maven版本作为环境变量公开,供Jenkins构建过程中的后续步骤使用:
import hudson.model.*; import hudson.util.*; def thr = Thread.currentThread(); def currentBuild = thr?.executable; def mavenVer = currentBuild.getMavenArtifacts().getModuleRecords()[0].mainArtifact.version; def newParamAction = new hudson.model.ParametersAction(new hudson.model.StringParameterValue("MAVEN_VERSION", mavenVer)); currentBuild.addAction(newParamAction);
我找到了一种解决方法,尽管我不知道为什么对API进行了未经通知的重大更改-希望它会得到解决。
替代:
def mavenVer = currentBuild.getMavenArtifacts().getModuleRecords()[0].mainArtifact.version;
对于
def mavenVer = currentBuild.getParent().getModules().toArray()[0].getVersion();