Gradle Maven就像多模块项目一样

时间:2016-11-10 12:47:56

标签: gradle multi-module

在Maven中定义多模块项目时,您有一个根项目及其模块。在构建根项目时,Maven会以正确的顺序传递所有模块。到目前为止,与Gradle非常相似。

但是使用Maven,您只能从存储库中克隆一个子模块并在本地构建它,而无需下载整个项目结构。这是因为您在同一项目中的其他模块上定义依赖项,就像任何其他外部依赖项一样,它是从本地存储库(Nexus)下载和缓存的。

使用Gradle,您可以将交叉模块依赖关系定义为compile project(':other')。因此,您需要从存储库中克隆整个项目结构,以便正确解析和构建。有没有办法使用Gradle多模块项目支持,而无需在本地克隆整个项目结构?

1 个答案:

答案 0 :(得分:0)

我认为Maven的多模块支持是经过深思熟虑的。与Gradle不同,项目依赖不是一流的概念。相反,maven"反应堆"当GAV(组/工件/版本)匹配时,将本地工件替换为依赖项。

如果您想在Gradle中使用相同的方法,那么您可以使用GAV表示法指定依赖项,然后使用新的composite build feature将两个或多个单独的gradle构建连接在一起并替换存储库依赖项用于本地源依赖项。请注意,您可以使用groovy定义复合中包含的项目,以便您可以根据自定义逻辑轻松编写脚本(例如,如果某个根文件夹中存在子文件夹等)

请注意,复合构建支持是new feature added in Gradle 3.1。在Gradle 3.1之前,您可以使用Prezi Pride来实现相同的