Grails 在jenkins管道中执行hudson特定函数

Grails 在jenkins管道中执行hudson特定函数,grails,jenkins,groovy,jenkins-pipeline,Grails,Jenkins,Groovy,Jenkins Pipeline,我一直在尝试使用jenkins pipeline插件以编程方式更改构建参数的解决方案,其中我有以下内容的jenkins文件: #!/usr/bin/env groovy import hudson.model.* properties( [ parameters( [ string(defaultValue: 'win64', description: 'PLATFORM', name: 'PLATFORM'),

我一直在尝试使用jenkins pipeline插件以编程方式更改构建参数的解决方案,其中我有以下内容的jenkins文件:

#!/usr/bin/env groovy
import hudson.model.*

properties(
    [
        parameters(
            [
                string(defaultValue: 'win64', description: 'PLATFORM', name: 'PLATFORM'),
                string(defaultValue: '12.1.0', description: 'PRODUCT_VERSION', name: 'PRODUCT_VERSION')
            ]
        )
    ]
)
stage('working with parameters'){

    node('master'){
        def thr = Thread.currentThread()
        def build = thr?.executable
        def paramsDef = build.getProperty(ParametersDefinitionProperty.class)
        if (paramsDef) {
            paramsDef.parameterDefinitions.each{ param ->
                if (param.name == 'PLATFORM') {
                println("Changing parameter ${param.name}    default value was '${param.defaultValue}' to 'osx10'")
                    param.defaultValue = "osx10"
                }
            }
        }
    }

}
但每次都会失败,错误如下:

groovy.lang.MissingPropertyException: No such property: executable for class: java.lang.Thread
at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:53)
在搜索了很多之后,我发现这个脚本需要作为系统groovy脚本运行,在任何地方,他们都引用groovy插件,但由于我使用管道项目,我无法理解如何强制管道作为系统groovy脚本执行我的脚本


请解决我的问题,因为我在谷歌上没有未打开的链接:(

不清楚您想做什么。为什么您不能直接更改Jenkins文件,使其具有不同的
defaultValue
?此代码将在构建启动后执行,因此不会对正在运行的构建产生影响。但通常,从管道中尝试使用像
Thread
这样的Java API是不会失败的事实上,我需要使用上一个版本中的一些信息(以参数的形式),所以这些参数需要以编程方式更改,以便在下一个版本中保持和反映。我正在寻找一些可以改变jenkins在管道中状态的东西,我所采用的方法似乎在管道中不起作用。