java.lang.NoSuchMethodError: Не найден такой метод DSL '$' среди шагов - PullRequest
0 голосов
/ 11 мая 2018

У меня есть следующее 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 

Что я делаю не так?Я использую

  • Jenkins 2.89.4
  • Задание DSL 1.68
  • Конвейерное задание 2.20
  • Конвейер: API 2.27
  • Трубопровод: основные этапы 2.7
  • Трубопровод: этапы сборки 2.7
  • Трубопровод: декларативный 1.2.9

Интересно, что в другом случае работает тот же самый dsl, хотя он имеетникогда не версия Дженкинса.

1 Ответ

0 голосов
/ 11 мая 2018

Хорошо, ответ уже можно найти в Stackoverflow : булевы параметры в действительности являются строками, так что это работает

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

Альтернативно используйте объект params

if (params.isRelease) {
    echo("This is a release")
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...