使用Grails项目获取通用代码以及对其他Grails项目的依赖关系

问题描述 投票:3回答:2

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

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

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

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

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

然后针对svr-1,我部署wars公共用户和grails1,srv-2具有公共用户和grails-2。

会工作吗?

或者是否有一种方法可以将普通用户作为grails-x中的编译依赖项引用,从而影响将所有对象打包在grails-x战争中?

grails
2个回答
2
投票

这正是将嵌入式插件用于常见功能的原因。将您的共享功能创建为Grails插件,然后将其作为BuildConfig.groovy中的嵌入式插件包含在grails项目中(请参见下文)。我在多个Grails项目中使用此模式取得了很大的成功。

BuildConfig.groovy

grails.plugin.location。“ my-shared-plugin” =“ ../ my-shared-plugin”


0
投票

您可以将域类或其他公共类放入grails插件中,然后在多个grails项目甚至非grails项目中使用该插件,因为对于grails v4而言,该插件只是一个常规jar。

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

© www.soinside.com 2019 - 2024. All rights reserved.