1

我创建了一个带有域“用户”的简单 grails 2.0.1 插件。创建脚手架控制器和视图。但是当我执行 grails run-app 并转到用户/列表 url 时,我得到了错误

方法没有签名:packagename.User.list() 适用于参数类型:() 值:[] 可能的解决方案:list()、list(java.util.Map)、is(java.lang.Object)、等等()、锁()、查找()

但是当我在 grails 应用程序中使用该插件时(没有发布、打包),它工作正常。

问题是 - 我希望能够在没有应用程序的情况下测试 grails 插件控制器。我猜我错过了一些配置。

4

1 回答 1

3

看起来您没有安装 Hibernate 插件。默认情况下,它是BuildConfig.groovy为应用程序添加的,但不是为插件添加的。你可以安装它,grails install-plugin hibernate 2.0.1它会将它添加到application.properties,当用户安装你的插件时,这种方法可以防止它成为依赖项。

您也可以添加它,BuildConfig.groovy但请务必添加export = false,除非您的插件确实需要 Hibernate 才能运行。如果它适用于任何 GORM 实现(例如 Mongo),那么它不应该被导出:

plugins {
    build(":tomcat:$grailsVersion",
          ":hibernate:$grailsVersion",
          ":release:1.0.1") {
        export = false
    }
}
于 2012-03-15T05:09:09.480 回答