【问题标题】:grails 3 creating sub projectsgrails 3 创建子项目
【发布时间】:2017-06-29 08:57:11
【问题描述】:

通常有一个 Web 管理项目会产生一场战争,而一个 API 项目会产生一场不同的战争。每个都可以在具有不同防火墙规则的不同服务器上运行(在生产中)。共同的部分是服务和领域层。此外,可能还有其他可选组件也可以从扩展插件中受益。扩展插件允许分离,但允许开发人员一起查看和修改所有源代码,就好像它是一个巨大的项目一样。

在 grails 2.5 中设置这个是微不足道的:

  1. 在项目根目录中创建 Web 管理应用
  2. 将您的核心服务应用程序创建为项目根目录中的插件
  3. 在您的 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 文件中。这是必需的吗?

  1. 新的主 gradle 文件有两次“repositories {mavenLocal()..”。一次在 buildscript 下的顶部,然后再次在“subprojects { project->”下。它是否正确?是不是应该只在主项目上,还是只在两个子项目上,不都是3个?

  2. 如果我们引入可选的扩展插件(具有不同的依赖项),则必须由每个开发人员手动编辑父 gradle。这使得版本和控制变得困难。

  3. 文章将spring security core添加到“plugin-domain”,而不是web app项目。安全性肯定是添加到网络应用程序中的,而不是服务/域层插件? API 应用项目会有不同的安全要求。

是否有人对 grails 3 有更好的方法,或者我们应该坚持使用 grails 2.5? grails 3 中没有我们需要的功能,但是在某些时候 2.5 会变得太旧,并且在大多数情况下迁移看起来是不可行的。没有类似于 intellij Ultimate 或 GGTS 的具有集成 grails 3 支持的负担得起的 IDE 也是一个很大的负面因素。

【问题讨论】:

    标签: grails


    【解决方案1】:

    “黑客”不是必需的。 这是官方的多项目教程: http://guides.grails.org/grails-quickcasts-multi-project-builds/guide/index.html

    mavenLocal() - 是一个本地文件夹,用于存储项目的所有依赖项。 "buildscript" 块只控制 buildscript 进程本身的依赖关系,而不是顶层 "dependencies" 块控制的应用程序代码的依赖关系。因此,您可以为“buildscript”和“dependencies”拥有不同的存储库。

    阅读 Gradle 用户指南了解更多信息。 Gradle 比旧的 grails 构建系统更难,但更强大。

    我将项目从 grails 2 移到了 3,结果我很满意。

    IntelliJ 2016 - 2017 与 grails 3 完美搭配

    【讨论】:

      【解决方案2】:

      我找到并关注了this tutorial,它与大多数其他教程不同,因为它使用 create-plugin 而不是 create-app 作为插件部分。

      然后该项目与 eclipse neon 2 一起正常工作。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-06-28
        • 2016-01-30
        • 1970-01-01
        • 2012-01-30
        • 1970-01-01
        • 2019-05-18
        相关资源
        最近更新 更多