2012-04-20 32 views
1

在一個Grails progect我想建立一個二進制插件與「鉤」實施的每個具體項目Grails的2.0.1和二進制插件dependeces

二進制插件結構

 
MyService (service) 
    MyHookClassInterface myHookClass 
    MyHookServiceInterface myHookService 

MyHookClassInterface (interface) 
MyHookServiceInterface (interface) 

主要項目結構

 
ProjectHookClass impements MyHookClassInterface (groovy class) 
ProjectHookService impements MyHookServiceInterface (service) 

resources.groovy 
beans = { 
    myHookClassInterface(ProjectHookClass) 
    myHookServiceInterface(ProjectHookService) 
} 

該解決方案像一個魅力使用源插件但不會以二進制模式注入MyService相關性。 我也開始Grails的控制檯和ctx.getBean( 'myHookClassInterface')返回:

 

org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'myHookClassInterface' is defined 
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:529) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.getMergedLocalBeanDefinition(AbstractBeanFactory.java:1095) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:277) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:269) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193) 
    at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1093) 
    at org.springframework.beans.factory.BeanFactory$getBean.call(Unknown Source) 
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42) 
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108) 
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116) 
    at ConsoleScript0.run(ConsoleScript0:1) 

THX

法比奧

回答

1

解決:該問題涉及resources.groovy對存在二進制插件。在這種情況下,grails啓動過程無法合併插件和項目resources.groovy。如果可以的話,刪除插件的resources.groovy就足夠了。