模块化Grails应用程序(Grails 2.3.x)

Lui*_* C. 1 grails grails-2.0

我想在Grails中开始我的第一个项目,我想分成更多的应用程序/插件.

现在我只有一个站点/应用程序(/ myproj/projectA).将来我想添加一个新的应用程序(/ myproj/projectB),我想重用一些projectA(例如UserService)的逻辑.

在Grails中,方式是什么?创建2个应用程序(projectA,projectB)和一个常见(ex.with UserService)插件?

怎么样?

最终结果是:我想更新单个应用程序而无需重新部署整个应用程序.

提前致谢

Ste*_*ole 5

创建可重用/共享功能是Grails作为开发框架的关键优势之一.你绝对应该从一开始就考虑模块化你的功能,并设计插件的创建和使用.

正如你猜测的那样,为此目的使用grails插件.我们开发了一个内部生态系统,包括(目前)大约30个插件,每个插件都提供特定的功能.我们还提出了Grails插件中可见的一些模式,使基本功能(域和服务)与用户界面(控制器,标签库和视图)分开.例如,我们有以下插件:

arkCore - Core datatypes, domains and services
arkComponents - Common UI controls
arkDocument - Document management datatypes, domains and services
arkDocumentUi - Document management user interface
Run Code Online (Sandbox Code Playgroud)

在这种情况下,arkDocument依赖于arkCore,而arkDocumentUi依赖于arkDocument和arkComponents.

Grails可以创建应用程序或插件项目.我的建议是

  1. 首先在一个应用程序中开发您的功能.
  2. 让它以一些基本形式工作.
  3. 创建一个插件项目,并将所有相关的文物从应用程序移动到插件中.
  4. 将插件发布到本地存储库.
  5. 更新项目BuildConfig.groovy以引用与任何其他Grails插件相同的插件.

您需要做以下事情才能熟悉使用插件:

  • 阅读并理解Grails文档的插件部分
  • 获取并安装Artifactory作为开发的私有插件存储库.如果它只是你,那么你可能只考虑使用本地Maven存储库并使用maven-install而不是publish-plugin.
  • 看一些第三方开发的插件作为例子.它们通常非常简单.