如何在grails 1.3.5中运行本地插件

时间:2011-02-11 01:30:59

标签: grails grails-plugin

我正在使用Grails,我有一个本地插件(我写的),我正在使用我的项目。使用 grails.plugin.location 配置参数在BuildConfig.groovy中配置本地插件位置。

在Grails 1.3.3中,该插件工作正常,但是自从升级到Grails 1.3.5后,当我尝试运行其中一个插件的脚本时出现以下错误:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'pluginManager': Invocation of init method failed; nested exception is java.io.FileNotFoundException: web-app\WEB-INF\grails.xml (The system cannot find the file specified)
    at gant.Gant$_dispatch_closure5.doCall(Gant.groovy:391)
    at gant.Gant$_dispatch_closure7.doCall(Gant.groovy:415)
    at gant.Gant$_dispatch_closure7.doCall(Gant.groovy)
    at gant.Gant.withBuildListeners(Gant.groovy:427)
    at gant.Gant.this$2$withBuildListeners(Gant.groovy)
    at gant.Gant$this$2$withBuildListeners.callCurrent(Unknown Source)
    at gant.Gant.dispatch(Gant.groovy:415)
    at gant.Gant.this$2$dispatch(Gant.groovy)
    at gant.Gant.invokeMethod(Gant.groovy)
    at gant.Gant.executeTargets(Gant.groovy:590)
    at gant.Gant.executeTargets(Gant.groovy:589)

我认为 grails.xml 文件(它声称缺少)是自动生成的 - 问题可能与问题GRAILS-6601有关(但是,这已在1.3中修复) 0.5)。

在任何情况下,由于Grails 1.3.3和1.3.5之间的_ GrailsBootstrap.groovy 脚本发生了变化,我的问题似乎已经发生了。比较1.3.3和1.3.5之间的这些脚本,我注意到脚本的新pluginManager部分是:

// There is a pluginManager variable in the binding
            delegate."pluginManager"(GrailsPluginManagerFactoryBean) {
                application = grailsApplication
                grailsDescriptor = new FileSystemResource("web-app/WEB-INF/grails.xml")
            }

这在Grails 1.3.3中的等效脚本中不存在,似乎导致了我的问题。我查看了发行说明和其他信息,并且无法找到我需要配置的新内容以使本地插件正常工作。

我有什么想法可以避免这个错误吗?这是一个配置问题,如果是,我错过了什么?

1 个答案:

答案 0 :(得分:3)

从1.1.1到现在,以下方法曾经为我们工作,1.3.6。在BuildConfig.groovy中,写一下:

grails.plugin.location.'my-plugin-name' = "local-plugins/my-plugin-name-0.1"