【问题标题】:How to use closures of Jenkins Job DSL Plugin within groovy classes如何在 groovy 类中使​​用 Jenkins Job DSL 插件的闭包
【发布时间】:2016-10-20 22:17:54
【问题描述】:

我是 Job DSL Plugin 甚至 Groovy 的新手。

给定以下脚本:

class MyClass {
    def create() {  
        folder('test') {
        }   
    }
}

new MyClass().create()

我收到以下错误:

javaposse.jobdsl.dsl.DslScriptException:(脚本,第 3 行)没有方法签名:MyClass.folder() 适用于参数类型:(java.lang.String, MyClass$_create_closure1) 值:[test, MyClass $_create_closure1@62591600] 可能的解决方案:find()、collect()

好的,清楚。 Groovy 在我的类中找不到名为“文件夹”的方法。但这不是一种方法。这是一个 Job DSL 命令。如何在我的课程中使用它们?

【问题讨论】:

    标签: groovy jenkins-job-dsl


    【解决方案1】:

    您需要将脚本引用传递到您的类中,请参阅Job DSL wiki

    class MyClass {
        def create(def dslFactory) {  
            dslFactory.folder('test') {
            }   
        }
    }
    
    new MyClass().create(this)
    

    【讨论】:

    • 谢谢丹尼尔!如果一个人不知道谷歌搜索的关键字,总是很难找到解决方案......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-25
    • 2016-02-20
    • 1970-01-01
    • 2016-06-24
    相关资源
    最近更新 更多