groovy.lang.MissingPropertyException:没有这样的 属性:

groovy.lang.MissingPropertyException: No such property:

我正在尝试编写 groovy 脚本以对 jenkins 管道进行一些更改,但我不断收到此错误:

groovy.lang.MissingPropertyException: No such property: credentials for class:

我已经尝试用 def 声明变量,但我仍然遇到异常,eclipse 无法识别 属性 存在。

我做错了什么?!

#!/usr/bin/groovy

package common.pipeline

import common.pipeline.Credentials

Credentials credentials = new Credentials()

def withCredentials(steps) {
    credentials.productionPipeline(steps)
}

此脚本将由 groovy 编译成脚本 class,在 run 方法中使用字段定义,并使用另一个方法 withCredentials 试图访问字段(有点像这样):

import common.pipeline.Credentials

class Script1 extends Script {

    def withCredentials(steps) {
        credentials.productionPipeline(steps)
    }

    def run(args) {
        Credentials credentials = new Credentials()
    }
}

如您所见,这将不起作用,因为凭据不在 class...

中的字段级别

Groovy 有一个注释来实现这一点:

#!/usr/bin/groovy

package common.pipeline

import common.pipeline.Credentials
import groovy.transform.Field

@Field Credentials credentials = new Credentials()

def withCredentials(steps) {
    credentials.productionPipeline(steps)
}