2016-11-10 37 views
0

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

但是通过Maven,您可以从存储库中仅克隆一个子模块并在本地构建,无需下载整个项目结构。这是因为您可以像在其他任何外部依赖项一样定义相同项目中其他模块的依赖关系,并且可以从本地存储库(Nexus)下载并缓存该依赖项。

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

回答

0

我会争辩说,Maven的多模块支持是在后想的一个耳光。与Gradle不同,项目依赖不是一流的概念。相反,当GAV(group/artifact/version)匹配时,maven“reactor”会将本地工件替换为依赖关系。

如果您想使用相同的方法在摇篮,那么你可以指定使用GAV符号的依赖关系,然后使用新的composite build feature连接两个或多个独立的gradle这个建立本地源的依赖和替代库的依赖在一起。请注意,您可以使用groovy定义组合中包含的项目,以便您可以根据自定义逻辑轻松编写脚本(例如,如果某个根文件夹中存在子文件夹等)

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