Как запустить локальный плагин в Grails 1.3.5 - PullRequest
2 голосов
/ 11 февраля 2011

Я использую Grails, и у меня есть локальный плагин (который я написал), который я использую в связи с моим проектом. Локальное расположение подключаемого модуля настраивается в BuildConfig.groovy с помощью параметра конфигурации grails.plugin.location .

В 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.5).

В любом случае, похоже, что моя проблема возникла из-за изменения в скрипте _ GrailsBootstrap.groovy между Grails 1.3.3 и 1.3.5. Сравнивая эти сценарии между 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 Ответ

3 голосов
/ 11 февраля 2011

Следующий подход работал для нас с 1.1.1 по настоящее время, 1.3.6.В BuildConfig.groovy напишите:

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

...