当前位置: 首页 > 知识库问答 >
问题:

java.lang.NoSuchMethodError:在步骤中找不到这样的DSL方法$

湛光华
2023-03-14

我有以下dsl:

pipeline {
    agent {
        label 'test'
    }
    parameters {        
        booleanParam(defaultValue: false, description: 'This is a Release build', name: 'isRelease')
    }

    stages {
        stage('Build') {
            steps {
                 script {
                     if (${params.isRelease}) {
                          echo("This is a release")
                     }
                 }
            }
        }
    }
}

这会失败并出现以下错误

java.lang.NoSuchMethodError: No such DSL method '$' found among steps 

我做错了什么?我正在使用

  • Jenkins2.89.4
  • 作业DSL 1.68
  • 管道作业2.20
  • 管道:API 2.27
  • 管道:基本步骤2.7
  • 管道:构建步骤2.7
  • 管道:声明1.2.9

共有1个答案

晋承嗣
2023-03-14

好的,答案已经在Stackoverflow中找到:布尔参数在现实字符串中,所以这有效

if ("${params.isRelease}" == "true") {
    echo("This is a release")
}

或者使用参数对象

if (params.isRelease) {
    echo("This is a release")
}
 类似资料: