我正在尝试将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