我为两个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很新)
答案 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往往会抱怨这一点。