【问题标题】:Modularize Grails Application (Grails 2.3.x)模块化 Grails 应用程序 (Grails 2.3.x)
【发布时间】:2014-09-12 15:11:51
【问题描述】:

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

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

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

怎么做?

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

提前致谢

【问题讨论】:

    标签: grails grails-2.0


    【解决方案1】:

    创建可重用/共享功能是 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
    

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

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

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

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

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

    【讨论】:

    • 感谢史蒂夫的精彩解释。我还有一些关于模块化 grails 应用程序的疑问。请回答这个stackoverflow.com/questions/34249297/…
    • @Steve 您能否告诉我如何将插件添加到 grails 2.5 项目中,或者您能给我一个工作示例。
    • 您可能应该将其作为一个单独的问题提出。它只与这个问题部分相关。
    猜你喜欢
    • 2013-05-24
    • 1970-01-01
    • 2013-05-23
    • 2011-02-22
    • 1970-01-01
    • 2015-07-01
    • 1970-01-01
    • 2013-12-24
    • 1970-01-01
    相关资源
    最近更新 更多