首页 > 解决方案 > 当我定义 BooleanParameterDefinition 时,Jenkins 的 Job DSL 抛出 ConcurrentModificationException

问题描述

我正在尝试向现有的 Jenkins 作业添加一个布尔参数,但是当我添加它时,我的种子作业停止工作。

我的工作定义:

job('ci') {
    description 'Build and test the app.'
    scm {
        github 'sheehan/job-dsl-playground'
    }
    steps {
        gradle 'test'
    }
    publishers {
        archiveJunit 'build/test-results/**/*.xml'
    }
    configure { project ->
        project / 'properties' / 'hudson.model.ParametersDefinitionProperty' {
            'parameterDefinitions'  {
                'hudson.model.BooleanParameterDefinition' {
                    name('my-param')
                    description("my-param-description")
                    defaultValue(true)
                }
            }
        }
    }
}

您可以通过在此页面中粘贴作业定义代码来重现错误:https ://job-dsl.herokuapp.com/

标签: jenkinsjenkins-job-dsl

解决方案


该错误仍然存​​在,但我设法通过删除BooleanParameterDefinition' 描述来解决它。所以我的最终代码如下所示:

job('ci') {
    description 'Build and test the app.'
    scm {
        github 'sheehan/job-dsl-playground'
    }
    steps {
        gradle 'test'
    }
    publishers {
        archiveJunit 'build/test-results/**/*.xml'
    }
    configure { project ->
        project / 'properties' / 'hudson.model.ParametersDefinitionProperty' {
            'parameterDefinitions'  {
                'hudson.model.BooleanParameterDefinition' {
                    name('my-param')
                    defaultValue(true)
                }
            }
        }
    }
}

推荐阅读