【问题标题】:Gradle Maven like multi module projectGradle Maven 之类的多模块项目
【发布时间】:2016-11-10 12:47:56
【问题描述】:

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

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

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

【问题讨论】:

    标签: gradle multi-module


    【解决方案1】:

    我认为 Maven 的多模块支持是事后诸葛亮。与 Gradle 不同,项目依赖不是一流的概念。相反,当 GAV(组/工件/版本)匹配时,maven“反应器”用本地工件替换依赖项。

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

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

    【讨论】:

      猜你喜欢
      • 2018-07-11
      • 1970-01-01
      • 2013-01-21
      • 2018-02-06
      • 1970-01-01
      • 1970-01-01
      • 2020-11-10
      • 1970-01-01
      • 2021-02-09
      相关资源
      最近更新 更多