将 grails 应用程序转换为插件
Posted
技术标签:
【中文标题】将 grails 应用程序转换为插件【英文标题】:Convert grails app to plugin 【发布时间】:2011-02-04 13:59:17 【问题描述】:我通过 grails create-app 启动了一个 grails 应用程序。对于模块化,我觉得组件是一个插件会更好。我可以将此应用程序转换为 grails 插件吗? 谢谢, 巴布。
【问题讨论】:
【参考方案1】:我从未基于之前编写的应用程序创建过插件,但查看documentation for grails plugins 您可以阅读以下声明:
Grails 插件的结构与常规 Grails 项目的目录结构完全相同,只是在插件目录的根目录下,您会找到一个名为“插件描述符”的插件 Groovy 文件。
所以我建议使用grails create-plugin *your-plugin-name*
创建一个新插件,并将应用程序中的所有文件复制到插件中。
【讨论】:
谢谢 Stefan,我会尝试一下。我也在尝试做一个测试插件,看看它们有什么不同。如果没有人遇到过类似的需求 cmets,我会结束这个线程。再次感谢【参考方案2】:如果其他人正在寻找,这应该正是您所需要的:http://burtbeckwith.com/blog/?p=1973
摘录:
因此,要将应用程序转换为插件,一般的工作流程是 像
创建插件描述符 FooGrailsPlugin.groovy。最简单的方法是 rungrails create-plugin pluginname 并复制 从那里生成的文件
从 application.properties 中删除除 app.grails.version 属性之外的所有内容
如果 lib 目录中有 Maven 存储库中可用的 jar,请将其删除并替换为 BuildConfig.groovy 依赖项
更改开发和测试所需的任何插件和 jar 依赖项,但在安装插件时不更改 导出,通过添加 export = false
如果您需要 _Install.groovy、_Uninstall.groovy 或 _Upgrade.groovy 脚本(您可能不需要)从步骤 1 中的虚拟插件中获取它们(但删除任何您不需要的,它们都是 可选)
如果您不使用 ApplicationResources.groovy 并且不依赖资源插件,请删除它
将代码从 BootStrap.groovy init() 移动到FooGrailsPlugin.doWithApplicationContext 和/或FooGrailsPlugin.doWithDynamicMethods 和destroy() 到 FooGrailsPlugin.onShutdown,并删除 BootStrap.groovy
在 BuildConfig.groovy 中添加发布插件的依赖项
从 Config.groovy 中删除除 log4j 配置之外的所有内容
删除 UrlMappings.groovy,除非您已导出映射;只保留添加的
将 bean 定义从 resources.groovy 移动到 FooGrailsPlugin.doWithSpring 并删除 resources.groovy
删除 grails-app/i18n 消息包文件,除非您添加了消息;只保留添加的
从 grails-app/views 中删除您不使用的所有内容(尤其是 error.gsp、index.gsp 和 layouts/main.gsp)
从 Web 应用中删除您不使用的所有内容(包括 WEB-INF xml 和 tld 文件)
现在是编写您一直想要进行的测试的好时机
创建一个或多个测试应用程序来安装插件,以确保它作为插件工作;考虑编写脚本
编写有关如何使用插件的文档;至少是一个 README 文件,但 Grails gdoc 文件会好得多(运行 grails doc --init 开始)
【讨论】:
以上是关于将 grails 应用程序转换为插件的主要内容,如果未能解决你的问题,请参考以下文章
Grails 数据库迁移:将 xml/groovy diff 转换为 sql 脚本文件
将现有的域类与 Spring Security 插件一起使用
将现有的域类与 Spring Security 插件一起使用
使用 spring-security-core 插件将 Facebook 登录 (oauth) 与现有 grails 应用程序集成