【问题标题】:Nested gradle builds嵌套的 gradle 构建
【发布时间】:2016-03-03 06:33:16
【问题描述】:

我有三个项目 A、B 和 C。A 依赖于 B,B 依赖于 C。我目前有以下设置:

  projectA/
  |__settings.gradle
  |__build.gradle
  |__projectB/
     |__build.gradle
     |__projectC
        |__build.gradle

构建失败并显示错误消息:

Build file '/path/to/projectA/projectB/build.gradle' line: 5

* What went wrong:
A problem occurred evaluating project ':projectB'.
> Project with path ':projectC' could not be found in project ':projectB'.
...

有没有办法让 gradle 使用这个文件夹结构?

settings.gradle的内容:

include 'projectB'

projectA/build.gradle 的内容:

apply plugin: 'java'
apply plugin: 'application'
mainClassName = 'hello.projectA'

dependencies {
    compile project(':projectB')
}

projectB/build.gradle 的内容:

apply plugin: 'java'

dependencies {
    compile project(':projectC')
}

projectC/build.gradle的内容:

apply plugin: 'java'

【问题讨论】:

    标签: gradle


    【解决方案1】:

    由于要使用项目依赖项,所有项目都必须在一个 settings.gradle 文件中声明为同一个全局项目的成员,因此您的 projectC 也必须包含在根项目中,方法是在 settings.gradle 中声明它projectA 的子项目,但作为 projectB 的子项目,如:

    include 'projectB', 'projectB:projectC'
    

    而且,现在还不确定,可能是这样,因为它必须在 projectB 依赖项中声明为 :projectB:projectC

    【讨论】:

    • 谢谢,我搞定了。不幸的是,如果不通过这种方式进行修改,projectB 就无法独立编译。所以我重组了我的项目以使用平面层次结构。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多