是否有可能或建议将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中的所有对象?
答案 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。