是否可以或建议将Grails项目作为其他Grails项目的公共依赖项?
假设我有一个grails-1项目,它包含用户服务的概念(即用户、SecUser、SecKey对象的域类,公开的服务(通过HTTP exporter)以便进行身份验证/登录/注销,以及一些页面/控制器来管理管理员用户在这些域对象上的CRUD,等等)。
现在,假设我有一个grails-2项目,它也具有与用户服务相同的概念。
我的两个项目在运行时都是相互独立的,它们都有不同的数据库。因此,用户服务的任何共享运行时实例都不合适。
因此,我正在考虑将所有用户功能转移到一个通用用户Grails项目中,该项目被打包为war,然后grails-1和grails-2对此有依赖(因为它们希望在其功能中使用域类/服务)。
然后,对于svr-1,我部署了wars公共用户和grails1,srv-2具有公共用户和grails-2。
这样行得通吗?
或者,有没有一种方法可以在grails-x中引用公共用户作为编译依赖项,这实际上会将它的所有对象打包到grails-x war中?
发布于 2013-10-23 22:22:40
这正是使用内联插件实现常见功能的原因。将您的共享功能创建为Grails插件,然后您可以将其作为BuildConfig.groovy中的内联插件包含在grails项目中(如下所示)。我已经在几个Grails项目中成功地使用了这个模式。
BuildConfig.groovy
插件.“my-shared-grails.plugin.location”= "../my-shared-plugin"
发布于 2020-04-12 17:29:37
您可以将域类或其他公共类放入grails插件中,然后在多个grails项目甚至非grails项目中使用该插件,因为对于grails v4,插件只是一个普通的jar。
有关配置详细信息,请参阅grails-multi-project-build。
https://stackoverflow.com/questions/19544146
复制相似问题