使用Grails项目获取其他Grails项目的公共代码和依赖项

时间:2013-10-23 14:11:40

标签: grails

是否有可能或建议将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中引用common-user作为编译依赖项,这会影响grails-x war中的所有对象?

2 个答案:

答案 0 :(得分:1)

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

  

BuildConfig.groovy

     

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

答案 1 :(得分:0)

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

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