【问题标题】:How to deploy grails app with private plugin to cloud如何将带有私有插件的 grails 应用程序部署到云端
【发布时间】:2012-08-10 16:04:10
【问题描述】:

我为在两个 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 很陌生)

【问题讨论】:

    标签: grails


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 我用的是Heroku,不能直接部署war文件。你推送你​​的项目,Heroku 使用你/它的依赖管理工具构建文件。因为当 Heroku 去构建我的项目时我的插件不是公开的(而且我没有运行互联网可访问的存储库),所以它无法解决插件依赖关系。
    • 查看我的更新。你应该在你的本地机器上试一试,看看 Grails 在哪里搜索插件。可能是您必须重命名您的 zip 文件
    • +1 - localRepo 似乎无效。尽管这不起作用,但我感谢您的帮助,它确实让我指出了正确的方向。
    • repositories { flatDir name:'localPlugins', dirs:'./deploy-plugins'} - 如果 zip 文件移动到 root/deploy-plugins 并且前缀 'grails-' 已删除,则对我有用来自 .zip 文件
    【解决方案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 可以解决依赖关系。

    【讨论】:

    • 这很有趣...所以您是说 Grails 将通过您的应用程序的 lib 目录解析插件?
    • 是的。它会在 lib 目录中找到插件并安装它。
    • 哇。好像您偶然发现了一个未记录的功能:)
    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-13
      • 1970-01-01
      • 2012-01-30
      • 2020-12-07
      • 2017-02-27
      相关资源
      最近更新 更多