1

我为在两个 grails 应用程序之间共享的域对象创建了一个私有插件。我可以在本地环境中成功使用该插件,因为我已经通过 BuildConfig 文件设置了它的路径。例如,我有以下目录:

appOne/
myPlugin/grails-my-plugin-0.1.zip     (myPlugin is a grails plugin project dir)

在:appOne/grails-app/conf/BuildConfig.groovy:

grails.plugin.location.compileMyPlugin = "../myPlugin"

我的问题是,在我的应用程序版本中处理“打包”这个插件的正确/最佳方法是什么,以便我可以将它部署到无法下载的云服务?我想有一种方法可以让 grails 为你做这件事,但我不确定。(我对grails很陌生)

4

3 回答 3

2

当您为部署创建 .war 文件时,grails 只包含您的插件。所以你没有什么特别的事情要做。

如果您的项目是在云中构建的,您可能会尝试将文件路径指定为本地存储库:

repositories {
  grailsCentral()
  localRepo "../myPlugin"
}

只需将您的压缩插件放到这个文件夹中,grails 就会找到它。

于 2012-08-11T07:41:27.437 回答
2

我最终在 Grails 2.1.0 中执行了以下操作来解决此问题:

1) 在 Grails 插件项目中:
grails package-plugin     生成 grails-myplugin-0.1.zip 文件

2) 将插件复制到我的应用程序的 lib 目录 (appOne/lib/grails-myplugin-0.1.zip)

3) 在 BuildConfig.groovy

  • 删除: grails.plugin.location.compilemyPlugin = "../myPlugin"
    在开发过程中使用它来防止
    更新插件中包含的文件时的重建-重新安装过程。

  • 添加:

    插件 {
    .....
    编译 ':grails-myPlugin:0.1'
    }

4)通过清理appOne并重新运行进行测试,这将通过lib目录安装/重新安装插件

5) 提交所有更改并将插件 zip 文件添加到 appOne 并推送。云提供商,
在这种情况下是 Heroku,然后可以解决依赖关系。

于 2012-08-13T16:16:11.713 回答
1

您的构建脚本应该首先打包插件,然后将插件安装到您的 Grails 应用程序中。至少,我必须这样做。如果您尝试在 BuildConfig 依赖项中指定您的插件并作为内联插件,Grails 往往会抱怨这一点。

于 2012-08-10T19:55:42.260 回答