找不到这样的字段:字段 java.lang.String sinput error while 运行 my jenkinsfile

No such field found: field java.lang.String sinput error while running my jenkinsfile

在 运行 连接我的 Jenkinsfile 时出现 No such field found: field java.lang.String sinput 错误。

我开发了一个 Jenkinsfile,它将接受用户输入并进一步 运行 远程机器上的命令将用户输入作为变量

stages {
    stage("Interactive_Input") {
        steps {
            script {
                def apiinput
                def userInput = input(
                        id: 'userInput', message: 'This is my project',
                        parameters: [
                                string(defaultValue: 'None',
                                        description: 'Enter the name of the service',
                                        name: 'sinput'),
                                
                        ])
                // Save to variables. Default to empty string if not found.
                apiinput = userInput.sinput?:''
            }
        }
    }
}

解决方案:

apiinput = userInput?:'' 将解决您的问题。


解释:

您正在错误地访问您的变量 sinput。您的 id: 'userInput' 确实直接代表用户输入的变量。您在调用 apiinput = userInput.sinput?:''.

时尝试访问不存在的变量

引自 Source3:

If just one parameter is listed, its value will become the value of the input step. If multiple parameters are listed, the return value will be a map keyed by the parameter names. If parameters are not requested, the step returns nothing if approved.

你有1个参数所以它成为输入步骤的值。没有创建地图。

Cloudbees 1 | Cloudbees 2 | Pipeline Input Step

嗯...我有这样的问题,在我的例子中,这是我使用变量的方式 当我确实喜欢 $VARIABLE 时,它不起作用,并且我遇到了此处描述的错误。 但是,当我这样做时 ${VARIABLE} -> 一切正常!!!

对我来说,问题是试图将 length 作为属性访问,而不是将 length() 作为方法访问。基本上缺少括号。