Gradle - 多个项目和git存储库

时间:2013-12-19 09:05:41

标签: spring git build gradle

我们有3个项目和第4个项目。

gradle中的多项目需要一个创建包装项目并包含其中的所有子项目。

我们的每个子项目都由不同的团队成员进行,我们使用git作为svn。

我们在进入gradle之前的关注点是,我们只有1个git存储库,它包含所有子项目的包装项目,而不是4个不同的存储库,每个子项目用于每个子项目。

1)我们错过了什么吗?

2)是否可以在多项目中创建4个回购?

3)我们的一个要求是部署单个战争(例如,只有4个中的webapp#1) - 使用多项目模板是否可以实现?

2 个答案:

答案 0 :(得分:3)

ad 1)您有一些选择:

  • 使用单个Git仓库。
  • 通过二进制存储库(例如Artifactory)使用多个Git存储库和交换工件,CI工作定期生成工件。
  • 使用类似Github子模块的东西创建一个“虚拟”整体Git仓库(不推荐这个)。

ad 2)Gradle并不关心构建包含多少Git repos,只要构建开始时settings.gradle指向的所有内容(至少所有构建脚本)都存在于磁盘上。当然,开发人员(和CI管理员)可能不方便处理多个Git存储库并将它们放在正确的(相对)位置。

ad 3)是的。

答案 1 :(得分:0)

我在同一个任务中偶然发现了这个问题,直到后来有人向我指出了第四个选项(这实际上是第三个选项的变体),这似乎是一个不错的技巧:

您可以将子项目保存在单独的Git存储库中,并通过设置各自的rootDir属性从根项目中指向它们。显然,这需要固定的结帐布局,但是无论如何通常都是这种情况。

此处介绍了该方法:https://medium.com/codequest/gradle-multi-project-build-substituting-jar-dependencies-with-local-projects-4a5323f8680b