2012-08-10 67 views
1

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

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非常陌生)

回答

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在这种情况下可以解决依赖关系。

+0

This很有意思......所以你在说Grails会通过你的应用程序的lib目录解析插件? – 2012-09-30 01:25:46

+0

是的。它会在lib目录中找到插件并将其安装。 – 2012-09-30 23:36:51

+0

哇。看起来像你偶然发现一个无证的功能:) – 2012-09-30 23:40:22

1

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

2

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

如果您的项目是建立在云中,你可以尝试到指定为本地库中的文件路径:

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

刚落,你的压缩插件,此文件夹中和Grails会发现它。

+0

我使用Heroku,我不能直接部署战争文件。您推送您的项目,Heroku使用您的/它的依赖项管理工具构建文件。由于我的插件没有公开(而且我没有运行互联网可访问的存储库),所以当Heroku构建我的项目时,它无法解决插件依赖性。 – 2012-08-11 22:03:07

+0

看到我的更新。您应该尝试在本地计算机上查看Grails搜索插件的位置。这可能是你必须重命名你的zip文件 – rdmueller 2012-08-12 11:13:01

+1

+1 - localRepo似乎不是有效的。尽管这不起作用,但我感谢你的帮助,它确实让我指出了正确的方向。 – 2012-08-13 16:19:46

相关问题