当前位置: 首页 > 知识库问答 >
问题:

Grails 2.0.1和二进制插件依赖项

何承
2023-03-14

在grails progect中,我想构建一个二进制插件,在每个特定的项目上都可以实现“钩子”

二进制插件结构

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)
}

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个答案

宰修能
2023-03-14

已解决:这个问题与二进制插件上的resources.groovy有关。在这种情况下,grails启动过程无法合并插件和项目资源。如果可以的话,删除插件的资源就足够了。

 类似资料:
  • 一个插件是一个简单的实现了插件接口的类.Gradle提供的核心插件作为其分布的一部分,因此,你需要做的仅仅是应用上述的插件.然而,非核心二进制插件需要到构建类路径才能应用它们.这可以以多种方式,包括以下方式实现: 定义插件作为构建脚本中内嵌类的声明. 定义插件为在项目中buildSrc目录下的一个源文件.(参见Section 62.4, “Build sources in the buildSrc

  • 本文向大家介绍android-gradle 远程二进制依赖项,包括了android-gradle 远程二进制依赖项的使用技巧和注意事项,需要的朋友参考一下 示例 您可以在Gradle中使用此结构添加远程依赖项: 或以下替代语法: 例如: 该compile 'com.android.support:appcompat-v7:24.1.0“行声明对Android支持库24.1.0版本的依赖。

  • 本文向大家介绍android-gradle 本地二进制依赖,包括了android-gradle 本地二进制依赖的使用技巧和注意事项,需要的朋友参考一下 示例 您可以具有一个jar或多个jar文件的依赖项。 通过一个jar文件,您可以添加: 可以添加一个jar目录进行编译。 编译fileTree(dir: 'libs', include: ['*.jar']行告诉编译系统app/libs/在编译类路

  • 依赖 AdminLTE 依赖两个主要的框架。下载的软件包中已经包含这两个库,因此你不必手动下载它们。 Bootstrap 4 jQuery 3.3.1+ Popper.js 1.14.7+ 下面列出了所有其他插件 插件 AdminLTE 使用以下插件。相关文档,更新或许可证信息,请访问提供的链接。 你需要手动加载插件的 js/css 文件。 AdminLTE 不会自动加载所有插件,这会造成页面加载

  • Example 21.2. Applying a binary plugin build.gradle apply plugin: 'java' 插件可以使用插件ID应用.插件的id作为给定的插件的唯一标识符.核心插件注册一个可以用作插件的id的短名称.在上述情况下,我们可以使用简称java的插件以应用JavaPlugin.社区插件,一方面会使用一个完全合格的形式的插件id(如com.github