【发布时间】:2017-06-29 08:57:11
【问题描述】:
通常有一个 Web 管理项目会产生一场战争,而一个 API 项目会产生一场不同的战争。每个都可以在具有不同防火墙规则的不同服务器上运行(在生产中)。共同的部分是服务和领域层。此外,可能还有其他可选组件也可以从扩展插件中受益。扩展插件允许分离,但允许开发人员一起查看和修改所有源代码,就好像它是一个巨大的项目一样。
在 grails 2.5 中设置这个是微不足道的:
- 在项目根目录中创建 Web 管理应用
- 将您的核心服务应用程序创建为项目根目录中的插件
- 在您的 Web 管理项目 BuildConfig.groovy 中添加一行,以将服务项目用作扩展插件,例如"grails.plugin.location.coreservices = "../coreservices""
要构建项目,您只需在 web admin app 文件夹中执行 grails war。
太棒了。轻松有效。开发人员只需从 git 签出这两个项目,然后就可以离开了。还可以与 intellij 14 无缝协作(不幸的是,我们没有 15+ 的许可证,因此不支持 grails 3)
在我们考虑迁移到 grails 3 之前,我们需要能够做同样的事情。
我们在这个主题上只能找到一个post。
这需要对 gradle 脚本进行大量“破解”,并在两个项目上方的目录中创建脚本,这不适合与 git 一起使用。
在“保持干燥”部分,他们将一些东西从子项目 build.gradle 文件移到项目上方的 build.gradle 文件中。这是必需的吗?
新的主 gradle 文件有两次“repositories {mavenLocal()..”。一次在 buildscript 下的顶部,然后再次在“subprojects { project->”下。它是否正确?是不是应该只在主项目上,还是只在两个子项目上,不都是3个?
如果我们引入可选的扩展插件(具有不同的依赖项),则必须由每个开发人员手动编辑父 gradle。这使得版本和控制变得困难。
文章将spring security core添加到“plugin-domain”,而不是web app项目。安全性肯定是添加到网络应用程序中的,而不是服务/域层插件? API 应用项目会有不同的安全要求。
是否有人对 grails 3 有更好的方法,或者我们应该坚持使用 grails 2.5? grails 3 中没有我们需要的功能,但是在某些时候 2.5 会变得太旧,并且在大多数情况下迁移看起来是不可行的。没有类似于 intellij Ultimate 或 GGTS 的具有集成 grails 3 支持的负担得起的 IDE 也是一个很大的负面因素。
【问题讨论】:
标签: grails