我继承了一个具有以下设置的项目。Gradle中大约有5个独立的模块,分布在5个不同的git库中。这些模块的版本控制由ScmVersion插件驱动。其中一个模块是将这些模块集成在一起的结果应用程序。
模块之间的依赖关系由groupId、artificatId和版本在build.gradle依赖关系部分中指定。
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的新手。到目前为止,我已经创建了一个简单的脚本,它将每个库的scmVersion覆盖到一个带时间戳的快照,并运行"clean build publishToMavenLocal“。在应用程序、LibB和LibC的gradle.properites中,脚本将依赖项版本覆盖到刚刚构建的快照,并运行相同的任务(在脚本结束时,这将恢复为发布版本)。这有效地构建了项目的整个结构,就像在我的机器上一样。
我的问题是,我如何在本地有效地开发它?我在用Intellij我见过一些带有嵌套模块的多项目设置的示例,但我如何在当前的CI设置中保持它的工作,其中作业将这些模块之间的依赖关系视为常规的group-artifactId-version依赖关系?
非常感谢您的任何意见。
在离开之前,我的同事提到Eclipse Gradle插件可以以某种方式处理这个问题。请问你有这方面的经验吗?
发布于 2017-05-23 01:32:04
我们可能会使用Gradle复合构建功能(也集成到Intellij版本2016.3中)来解决这个问题。不幸的是,Gradle不支持嵌套的复合构建:(
https://stackoverflow.com/questions/44018246
复制相似问题