多模块(多scm)gradle项目开发

时间:2017-05-17 07:27:00

标签: java git gradle continuous-integration multi-module

我继承了以下设置的项目。 Gradle中有大约5个独立的模块,分别位于5个不同的git存储库中。这些模块的版本控制由ScmVersion插件驱动。其中一个模块是一个将这些模块集成在一起的应用程序。

模块之间的依赖关系在build.gradle依赖关系部分中由groupId,artificatId和版本指定。

App (separete git repo)
- depends on libA
- depends on libB
- depends on libC

LibA (separete git repo)

LibB (separete git repo)
- depends on LibD

LibC (separete git repo)
- depends on LibD

LibD (separete git repo)

我对Gradle很新。到目前为止,我已经创建了一个简单的脚本,它将每个lib的scmVersion覆盖为带时间戳的快照,并运行" clean build publishToMavenLocal"。在App,LibB和LibC的gradle.properites中,脚本将依赖版本覆盖到刚构建的快照并运行相同的任务(在脚本结束时,它将恢复为RELEASE版本)。这有效地构建了项目的整个结构,就像在我的机器上一样。

我的问题是,我如何在本地有效地发展这个?我正在使用Intellij。我已经看到了一些嵌套模块的多项目设置示例,但是如何让它在当前的CI设置中保持工作,其中作业将这些作为常规group-artifactId-version依赖项之间的依赖关系处理?

非常感谢任何意见。

P.S在离开同事之前提到Eclipse Gradle插件可以某种方式处理它。你对此有什么经验吗?

1 个答案:

答案 0 :(得分:0)

我们可能会使用Gradle复合构建功能(在2016.3版中也集成到Intellij)来解决这个问题。遗憾的是,Gradle不支持嵌套复合构建:(