【问题标题】:Using Grails projects for common code and dependencies to other Grails projects将 Grails 项目用于公共代码和对其他 Grails 项目的依赖项
【发布时间】:2013-11-01 20:59:12
【问题描述】:

是否可以或推荐将 Grails 项目作为其他 Grails 项目的公共依赖项?

假设我有 grails-1 项目,其中包含用户服务的概念(即用户、SecUser、SecKey 对象的域类、公开服务(通过 HTTP 导出器)以进行身份​​验证/登录/注销和一些页面/控制器为管理员用户等管理这些域对象上的 CRUD。

现在假设我有一个 grails-2 项目,它也具有相同的用户服务概念。

我的两个项目在运行时彼此分开使用不同的数据库。所以没有适合的用户服务共享运行时实例。

所以我正在考虑将所有用户功能转移到一个普通用户 Grails 项目中,该项目被打包为一个战争,然后 grails-1 和 grails-2 对此有依赖(因为他们希望使用域类/服务在他们的功能)。

然后对于svr-1我部署wars common-user和grails1,srv-2有common-user和grails-2。

这行得通吗?

或者有没有办法将 common-user 引用为 grails-x 中的编译依赖项,这会影响 grails-x 战争中的所有对象?

【问题讨论】:

    标签: grails


    【解决方案1】:

    这正是使用内联插件来实现通用功能的原因。将您的共享功能创建为 Grails 插件,然后您可以将其作为 BuildConfig.groovy 中的内联插件包含在您的 grails 项目中(见下文)。我在几个 Grails 项目中使用这种模式取得了巨大的成功。

    BuildConfig.groovy

    grails.plugin.location."my-shared-plugin" = "../my-shared-plugin"

    【讨论】:

      【解决方案2】:

      您可以将领域类或其他通用类放入一个 grails 插件中,然后在多个 grails 项目甚至非 grails 项目中使用该插件,因为对于 grails v4,该插件只是一个普通的 jar。

      有关配置详情,请参阅grails-multi-project-build

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-01-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-05-05
        • 2020-08-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多