从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);
我找到了一种解决方法,尽管我不知道为什么对API进行了未经通知的重大更改-希望它会得到解决。
替代:
def mavenVer = currentBuild.getMavenArtifacts().getModuleRecords()[0].mainArtifact.version;
对于
def mavenVer = currentBuild.getParent().getModules().toArray()[0].getVersion();
我正在尝试使用BitBucket GIT存储库设置Jenkins,但Jenkins控制台总是给我以下错误代码: 我尝试过很多不同的方法,但总是失败。我的服务器上允许9418端口上的通信量。服务器处于1 Gbps连接上。
问题内容: 我正在尝试为jenkins groovy脚本获取分支的名称。我无法获取当前的分支名称。我尝试以下方法: 这是输出-它始终返回null。 我想念什么吗? 问题答案: 此变量仅在多分支管线中起作用: BRANCH_NAME对于多分支项目,此名称将设置为正在构建的分支的名称,例如,如果您希望从主分支而不是功能分支部署到生产中。 我在正常的管道中进行测试
问题内容: 我使用Jenkins(在Windows计算机上)作业通过Ant为不同的目标编译一些代码。为此,我将对ant目标的调用包装在(windows)批处理循环中,如下所示: 那是我的第一个主意……但是即使(例如)target1失败,此代码也可以成功构建。因此,我在Windows批处理构建步骤中增加了一些内容,以获取更多概述。另外,我还用了cecekdout代码来获得与Jenkins本地计算机相
有我的密码 我怎样才能得到异常原因?在我的例子中,如果我运行gradle,从命令行安装(没有jenkins)是:错误:不兼容的类型:不能转换为boolean 但我会在jenkins作业控制台输出中看到错误
问题内容: 使用GitHub命令,我可以: 我与GitHub的连接正常(没问题),但是与Jenkins的连接出现此错误: 公钥有这个问题吗? 我在/ 下使用。 问题答案: 这个错误: stderr:权限被拒绝(公钥)。致命:远端意外挂断 表示Jenkins尝试使用错误的ssh密钥连接到github。 你应该: 确定jenkins的运行用户,例如。’build’或’jenkins’ 在尝试执行克隆的