首页 > 解决方案 > 了解 Gradle 项目依赖关系,Gradle 站点示例似乎不完整

问题描述

我正在尝试了解 Gradle 构建依赖项,但在使用 Gradle 网站上的示例时遇到问题,想知道是否有人可以提供帮助。

在他们网站的将依赖项添加到任务部分中,将以下代码保存在build.gradle中:

project('projectA') {
    task taskX {
        dependsOn ':projectB:taskY'
        doLast {
            println 'taskX'
        }
    }
}

project('projectB') {
    task taskY {
        doLast {
            println 'taskY'
        }
    }
}

他们说gradle -q taskX 的输出是:

> gradle -q taskX
taskY
taskX

但我得到:

FAILURE: Build failed with an exception.

* Where:
Build file '/tmp/x/build.gradle' line: 3

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

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

我得到--stacktrace以下信息:

Caused by: org.gradle.api.UnknownProjectException: Project with path ':projectA' could not be found in root project 'x'.

注意:此build.gradle文件是文件/tmp/x夹中的唯一文件。

------------------------------------------------------------
Gradle 3.4.1
------------------------------------------------------------

Build time:   2012-12-21 00:00:00 UTC
Revision:     none

Groovy:       2.4.15
Ant:          Apache Ant(TM) version 1.10.3 compiled on July 19 2018
JVM:          1.8.0_191 (Oracle Corporation 25.191-b12)
OS:           Linux 4.15.0-43-generic amd64

标签: javagradlebuild

解决方案


文档中的这个聊天器解释了如何在来自同一构建的不同(子)项目的任务之间创建依赖关系(项目中的任务X取决于projectA示例中Y项目projectB中的任务)。

因此,您需要在尝试执行给定示例之前设置多项目构建:请参阅此处的多项目构建基础知识

在您的情况下:您需要:

1)创建两个子项目目录'projectA'和'projectB'

2)在项目根目录下创建所需settings.gradle文件,声明/包含两个子项目

include ("projectA" , "projectB")

推荐阅读