如何在 Gradle 3.2.1 中找到 rootProject

How to find rootProject in Gradle 3.2.1

atm 我正在阅读 gradle 用户指南 https://docs.gradle.org/current/userguide/multi_project_builds.html#sec:dependencies_which_dependencies

我只是按照那里的说明进行了双重、三重和四重检查,但出于某种原因,我将 运行 保留为

 Could not set unknown property 'producerMessage' for root project 'messages' of type org.gradle.api.Project.

而且我真的无法弄清楚问题出在哪里(2 位同事也是如此)。

有人在这里有一些经验还是刚刚意识到 "Ohyeah, the problem is ..."???也许我现在太盲目了。

我的问题基本上是如何在 rootProject 上声明 属性 以及为什么我在用户指南中找不到该步骤?

settings.gradle

include 'consumer', 'producer'

consumer/build.gradle

task action {
doLast {
    println("Consuming message: ${rootProject.producerMessage}")
}}

producer/build.gradle

task action {
doLast {
    println "Producing message:"
    rootProject.producerMessage = 'Watch the order of execution.'
}}

您必须先在根项目中声明一个变量,然后才能在子项目中使用它。因此,您必须在包含 settings.gradle 文件的文件夹中添加 build.gradle 文件,并在其中声明此变量,例如:

ext.producerMessage = null

只是未声明变量的问题。您也可以查看 sources ,看看它是否已声明。问题是用户指南没有说你需要一个带有变量声明的文件。