Grails:从插件添加的方法中了解错误

时间:2016-02-23 11:14:45

标签: grails groovy grails-3.0

我正在尝试将jGit插件移植到Grails 3。

此插件添加了一种方法' withJGit'某些课程(默认' Controller','服务''域',但可以从Grails 2.x中的Config.groovy进行配置)。

我已经做了Grails 3认为必要的所有更改,但是当我们的应用程序尝试使用JGit'发生以下错误:

No signature of method: app.GitService.withJGit() is applicable
for argument types: (app.GitService$_updateData_closure1) 
values: [app.GitService$_updateData_closure1@2e4d8f4a] 
Possible solutions: withJGit(groovy.lang.Closure)

用JGit'定义'在插件中是:

private void addDynamicMethods(klass, jgit) {
    klass.metaClass.withJGit = withJGit.curry(jgit)
}

private withJGit = { jgit, Closure closure ->
    if (!closure) return

    closure.delegate = jgit
    closure.resolveStrategy = Closure.DELEGATE_FIRST
    closure(jgit.rootFolder)
}

为什么这会给出“没有签名”#39;错误? 这个动态方法定义有什么问题?

' jgit'在上面的代码中是一个springbean,它实现了底层jgit库的接口

我以为我对Groovy非常了解,但这让我感到困惑

可以在此处找到正在进行中的代码:https://github.com/anwbhv/grails-jgit/tree/grails3

0 个答案:

没有答案