【发布时间】:2014-11-17 18:19:36
【问题描述】:
我编写了一个 Grails 插件,用 Grails 2.1.1 编写,它提供服务。现在,我使用 Grails 2.4.4 创建了一个新的 Grails 项目,并想注入该服务,但失败了。
package testproject
class HomeController {
def myService
def index() {
println myService
}
}
总是打印null。我使用 Grails 2.4.4 项目和 Grail2 2.4.3 项目对此进行了测试。当我使用 Grails 2.1.1 创建我的 Grails 项目时,它可以工作。
为什么?不应该是较新版本可以访问的服务吗?我是否总是必须升级包含服务的插件才能使用更新的 Grails 版本?
【问题讨论】:
-
如何安装插件?您是否将其用作内联插件,或与 maven-install 一起使用,或通过发布到内部存储库(例如 Artifactory)?
-
你好,我使用的是本地还是maven-install都没关系。我在我的 Mac OS Yosemite 上使用最新的 GGTW 版本进行了测试,但现在也在 Win7,64bit 上使用 ggts 3.6.2 版本进行了测试。我还在新项目中使用了 grails 2.4.3,也遇到了同样的问题。
-
2.4.3 相当有问题(尤其是 wrt 插件),所以一定要使用 2.4.4+。请注意,重新运行
maven-install不会用相同版本替换现有插件,因此请更改版本,或删除该版本的 maven 本地缓存目录,即 $HOME/.m2/repository/org/grails/plugins/ // -
你的意思是,改变插件的版本?
-
您的评论中没有有用的信息 - Grails 中的堆栈跟踪需要自下而上阅读,因为它们通常是由异常引起的链,根本原因在底部,不是顶部
标签: grails plugins service version code-injection