创建Grails插件,应用程序无法看到类

时间:2014-08-28 17:57:29

标签: grails plugins groovy

我没有看到任何直接解决我问题的事情,我确信这很简单,因为我是新手,并且很难找到可能出错的问题。

我创建了一个简单的插件,其中包含一个枚举类。它实际上是一个工作类,从我现有的应用程序复制到插件中的相应路径。该类将从应用程序中删除。我构建插件,安装它,可以看到它正在做grails list-plugins。

在我的应用程序中,我引用它(编译“:myplugin:1.0”)。

当我编译/运行应用程序时,应用程序抛出编译错误“无法解析类MyEnum”。

所有插件示例似乎都表明这应该很容易。 :/

总结一下:

  1. grails create-plugin myplugin
  2. 将简单枚举从另一个应用程序路径src / xxx / MyEnum.groovy移动到插件路径src / xxx / MyEnum.groovy
  3. grails maven-install
  4. 修改应用程序的BuildConfig以包含编译“:myplugin:0.1”
  5. run-app ...得到编译错误,无法找到枚举(由使用它的应用程序中的控制器)。
  6. 我错过了什么专业吗?我一定是。

    我这样做是为了看看我是否可以将部分域对象与一些插件以及一些依赖类分开。

    ----更新----

    似乎是一个依赖问题。我正在使用插件进行增量更改(以便随时测试)。我打包并安装它,但似乎grails应用程序即使在我使用刷新依赖项时也没有新鲜。似乎我被迫每次更改都会增加插件的版本号,以便让应用程序项目重新获得它?

2 个答案:

答案 0 :(得分:0)

问题原来是应用程序没有检查依赖项的更新。我没有找到合适的解决方案,但由于我处于开发周期,我只是更新插件和BuildConfig中的虚假版本值。

答案 1 :(得分:0)

您可以尝试一些事项:

  • 确保您已正确导入Enum班级。
  • 如果您对插件进行了更新,请使用grails maven-install重新安装插件,然后从目标目录中删除已编译的插件并运行grails refresh-dependencies,或运行grails clean-all并重新启动运行grails refresh-dependencies
  • 开发插件时,在测试应用程序中尝试使用BuildConfig.groovy中的相对路径添加grails.plugin.location."plugin-name" = "/path/to/plugin"。这将允许您对插件进行更改,它们将立即在您的测试应用程序中可用。