【问题标题】:Gradle composite build throwing "Failed to get Gradle name for :module"Gradle 复合构建抛出“无法获取 :module 的 Gradle 名称”
【发布时间】:2023-02-09 05:39:29
【问题描述】:

我们收集了由不同团队开发并分别推送到不同 Git 存储库的库。为了尽量减少发布到本地 Maven 存储库或发布快照版本的麻烦,我们将所有这些库与 Gradle 的依赖项替换放在一起,以包含所有这些库。

结构如下:

- root (Git-root)
  ...
  - modules
    - module-a (Git-module-a)
      - a-core
        - build.gradle.kts
      - a-data
        - build.gradle.kts
      - settings.gradle.kts
    - module-b (Git-module-b)
      - b-core
        - build.gradle.kts
      - b-data
        - build.gradle.kts
      - settings.gradle.kts
    - settings.gradle.kts
  - settings.gradle.kts

这有点令人困惑,但 module-amodule-b 作为 git 子模块包含在 root 项目的 modules 文件夹中。

Gradle文件如下:

设置.gradle.kts

rootProject.name = "project-root"
includeBuild("modules")

模块/settings.gradle.kts

rootProject.name = "modules"
includeBuild("module-a")
includeBuild("module-b")

模块/模块-a/settings.gradle.kts

rootProject.name = "module-a"
include("a-core")
include("a-data")

模块/模块-b/settings.gradle.kts

rootProject.name = "module-b"
include("b-core")
include("b-data")

只是为了说明原因,假设 module-b:b-core 依赖于 module-a:a-core 库。

问题是,当我运行此构建时,它会返回以下消息:

Multiple build operations failed.
    Failed to get Gradle name for :a-core
    Failed to get Gradle name for :a-data
    Failed to get Gradle name for :b-core
    Failed to get Gradle name for :b-data

我不知道我想要实现的目标是否可行,但我在文档中找不到任何内容。看起来我们总是非常接近我们想要的,但几乎不可能到达那里。

你们知道我错过了什么吗?

【问题讨论】:

    标签: gradle


    【解决方案1】:

    错误消息来自 AGP ModelBuilder.getBuildeName()
    原因是复合构建中的大多数“底层”项目(“a-core”、“a-data”、“b-core”和“b-data”)都将 gradle.rootProject.parent 设置为“最顶层”项目(“project -root”),而不是它们的直接父级(“module-a”和“module-b”)。
    你可以检查它
    println("${project.name} parent is ${project.gradle.parent?.rootProject?.name}")
    在所有项目的 build.gradle.kts 中运行同步

    它是 Gradle 还是 AGP 问题,取决于这样的 root 行为是否正确或 gradle 错误。
    我已经在 gradle 项目中创建了关于这个案例的the issue。会看看 gradle 团队的回答:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-19
      • 1970-01-01
      • 2016-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-11
      相关资源
      最近更新 更多