带有 Jenkins 的 Groovy 脚本用于下游参数

mengfanrong 阅读:105 2025-06-02 22:19:02 评论:0

在 Jenkins 中,我尝试使用 Groovy 脚本将参数传递到我的下游作业中以用于构建管道。在我的第一份工作中,我添加了一个构建步骤“执行 Groovy 脚本”并将内容添加到 Groovy 命令中:

import hudson.model.* 
import hudson.util.* 
def thr = Thread.currentThread() 
def build = thr?.executable 
printf "Setting UPSTREAM_ID as "+ build.getEnvVars()['BUILD_ID']  +"\n" ;  
build.addAction(new ParametersAction(new StringParameterValue('UPSTREAM_ID', build.getEnvVars()['BUILD_ID']))) 

我得到输出:

    [workspace] $ C:\Progra~1\Groovy\Groovy-1.5.8\bin\groovy.exe d:\JenkinsAT\jobs\Test_Job\workspace\hudson8779135058472653024.groovy 
    org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed, D:\JenkinsAT\jobs\Test_Job\workspace\hudson8779135058472653024.groovy: 6: unable to resolve class ParametersAction  
     @ line 6, column 17. 
       build.addAction(new ParametersAction(new StringParameterValue('SVN_UPSTREAM', build.getEnvVars()['BUILD_ID']))) 
                       ^ 
    D:\JenkinsAT\jobs\Test_Job\workspace\hudson8779135058472653024.groovy: 6: unable to resolve class StringParameterValue  
     @ line 6, column 38. 
       build.addAction(new ParametersAction(new StringParameterValue('SVN_UPSTREAM', build.getEnvVars()['BUILD_ID']))) 
                                            ^ 
 
2 errors 

我已经在我的机器上安装了 Groovy 1.5.8,我的 Jenkins 版本是 1.519。我在这里做错了什么。

请您参考如下方法:

通过将 Jenkins-core.jar 放入 groovy lib 目录并将构建类型更改为 Execute system Groovy Script 来修复此问题


标签:Jenkins
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号