如何使用私有插件将grails app部署到云端

时间:2012-08-10 16:04:11

标签: grails

我为两个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很新)

3 个答案:

答案 0 :(得分:2)

当你创建.war文件进行部署时,grails只包含你的插件。所以你没什么特别的。

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

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

只需将您的压缩插件放在此文件夹中,Grails就会找到它。

答案 1 :(得分: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可以解决依赖关系。

答案 2 :(得分:1)

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