3

是否有可能或建议将 Grails 项目作为其他 Grails 项目的公共依赖项?

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

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

我在运行时的两个项目都彼此分开不同的数据库。因此,用户服务的共享运行时实例不适合。

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

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

那会奏效吗?

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

4

2 回答 2

2

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

BuildConfig.groovy

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

于 2013-10-23T14:22:40.427 回答
0

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

有关配置详细信息,请参阅grails-multi-project-build

于 2020-04-12T09:29:36.507 回答