在Maven中定义多模块项目时,您将有一个根项目及其模块。当您构建根项目时,Maven将以正确的顺序过渡性地构建其所有模块。到目前为止,与Gradle非常相似。
但是使用Maven,您可以从存储库中仅克隆一个子模块并在本地构建它,而无需下载整个项目结构。这是因为您定义了对同一个项目中其他模块的依赖,就像其他任何外部依赖一样,它是从本地存储库(Nexus)下载和缓存的。
使用Gradle,您可以将跨模块依赖项定义为compile project(':other')
。因此,您需要从存储库克隆整个项目结构,以便正确解析和构建。有什么方法可以使用Gradle多模块项目支持,而不必在本地克隆整个项目结构?
最佳答案
我认为Maven的多模块支持是事后思考的基础。与Gradle不同,项目依赖不是一流的概念。相反,当GAV(组/ Artifact /版本)匹配时,行家“反应器”将本地 Artifact 替换为依赖项。
如果要在Gradle中使用相同的方法,则可以使用GAV表示法指定依赖项,然后使用新的composite build feature将两个或多个单独的gradle构建结合在一起,并用存储库依赖项替换本地源依赖项。请注意,您可以使用groovy定义组合中包含的项目,以便您可以基于自定义逻辑轻松编写脚本(例如,如果某个根文件夹中存在子文件夹等)
注意,复合构建支持是new feature added in Gradle 3.1。在Gradle 3.1之前,您可以使用Prezi Pride实现相同的功能
关于gradle - Gradle Maven之类的多模块项目,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40528029/