2013-05-03 3 views
2

Я написал собственный плагин, который зависит от Spring-Social Core и Spring-Security Core. Я вижу ниже определение в dependencies.groovy в упакованном zip-файле.Grails 2.1.0 Переходные зависимости плагинов

MYCustomPluginBuildConfig: 
plugins { 
     build(":tomcat:$grailsVersion") 
     compile(":spring-security-core:1.2.7.3") 
     compile(":spring-social-core:0.1.31") { 
      transitive = false 
     } 
     //checkstyle for groovy 
     test(':codenarc:0.18') 
    } 

Когда я включить этот плагин в рамках выполнения в моем проекте и запустить «Грааль компилировать» он не может найти Спринг социальных классов.

.grails/projects/myproject/plugins/web-application-common-paypal-access-1.0.39/src/groovy/com/mycompany/SignInAdapter.groovy: 3: unable to resolve class grails.plugins.springsocial.signin.SpringSocialSimpleSignInAdapter 
@ line 3, column 1. 
    import grails.plugins.springsocial.signin.SpringSocialSimpleSignInAdapter 

Я не могу понять, почему. Любая помощь приветствуется.

Спасибо, Абайджита

+0

Я на самом деле имея подобную проблему, и я (как предполагает @DerekSilfe) с указанием своих пользовательских плагинов в качестве зависимостей во время компиляции. Для закрытия хранилищ {} в BuildConfig.groovy я использую метод flatDir. 'flatDir name: 'customplugin', dirs: '/ path/to/custom/plugin'' Хотя он _does_ устанавливает плагин, он не транзитивно разрешает зависимости, содержащиеся в dependencies.groovy (или BuildConfig.groovy before Я упакую плагин). Таким образом, когда он пытается скомпилировать исходные файлы плагина, он не может импортировать некоторые необходимые классы. – jonnybot

+0

Кроме того, если я смотрю в отчете зависимости, в то время как мой пользовательский плагин указан там, он указан как не имеющий зависимости. Я предполагаю, что локальные плагины просто не получают переходного разрешения, вероятно, потому, что они предназначены для работы в автономном режиме. – jonnybot

ответ

0

Если ваше приложение Grails имеет код, который ссылается на классы в плагине, или классы, которые плагин включает в себя из-за переходные зависимости, вы должны включить этот плагин как compile зависимости от времени вместо runtime в зависимость.

На основании сообщения об ошибке SignInAdapter ссылается на SpringSocialSimpleSignInAdapter. Попробуйте обновить ваш BuildConfig.groovy следующим образом:

compile ':my-social-security-plugin:0.1' 
Смежные вопросы