0

从 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);
4

1 回答 1

1

我找到了一种解决方法,尽管我不知道为什么对 API 进行了未经宣布的重大更改 - 希望这是一个可以修复的错误。

代替:

def mavenVer = currentBuild.getMavenArtifacts().getModuleRecords()[0].mainArtifact.version;

为了

def mavenVer = currentBuild.getParent().getModules().toArray()[0].getVersion();
于 2012-04-18T08:33:37.330 回答