grails 3创建子项目

时间:2017-06-29 08:57:12

标签: grails

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

在grails 2.5中设置它很简单:

  1. 在项目根目录中创建您的网络管理员应用
  2. 在项目根目录
  3. 中创建您的核心服务应用程序作为插件
  4. 在您的网络管理项目BuildConfig.groovy中添加一行,以将服务项目用作展开的插件,例如“grails.plugin.location.coreservices =”../ coreservices“”
  5. 要构建项目,您只需在web admin app文件夹中执行grails war。

    辉煌。轻松有效。开发人员只需从git中检出这两个项目,然后关闭它们。与intellij 14无缝协作也可以作为奖励(我们没有15岁以上的许可证,所以没有grails 3支持)

    在我们考虑转移到grails 3之前,我们需要能够做同样的事情。

    我们只能在主题上找到一个post

    这需要对两个项目上方的目录中的gradle脚本进行大量“黑客攻击”并创建脚本,这对于git来说并不理想。

    在“保持干燥”一节中,他们将一些东西从子项目build.gradle文件移动到项目上方的build.gradle文件中。这需要吗?

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

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

    3. 该文章将弹簧安全核心添加到“插件域”,而不是Web应用程序项目。肯定安全性被添加到Web应用程序,而不是服务/域层插件? API应用程序项目具有不同的安全要求。

    4. 有没有人用grails 3更好的方法,还是我们坚持使用grails 2.5?我们需要的grails 3中没有任何功能,但在某些时候,2.5将变得太旧,迁移看起来在大多数情况下是不可行的。事实上,没有经济实惠的IDE集成grails 3支持类似于intellij ultimate或者GGTS也是一个很大的负面因素。

2 个答案:

答案 0 :(得分:1)

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

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

阅读Gradle用户指南以获取更多信息。 Gradle比旧Grails构建系统更难,但更强大。

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

IntelliJ 2016 - 2017与grails 3完美配合

答案 1 :(得分:0)

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

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