自Jenkins 1.460以来,在getMavenArtifacts()
的实例上调用MavenBuild
返回null,而之前可以正常工作。
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);
答案 0 :(得分:1)
我找到了一种解决方法,虽然我不知道为什么会对API进行突击性更改 - 希望这是一个可以修复的错误。
替换:
def mavenVer = currentBuild.getMavenArtifacts().getModuleRecords()[0].mainArtifact.version;
的
def mavenVer = currentBuild.getParent().getModules().toArray()[0].getVersion();