【问题标题】:How to find rootProject in Gradle 3.2.1如何在 Gradle 3.2.1 中找到 rootProject
【发布时间】:2017-05-12 16:32:27
【问题描述】:

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 位同事也是如此)。

是否有人在这里有一些经验或刚刚意识到“哦,问题是......”?也许我现在太盲目了。

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

settings.gradle

include 'consumer', 'producer'

消费者/build.gradle

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

生产者/build.gradle

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

【问题讨论】:

  • 你能发布你的 gradle.build 文件吗?好像你没有正确设置 producerMessage
  • 我的 gradle.build 和 settings.gradle 文件与用户指南中的完全一样。它们实际上是复制粘贴的

标签: java gradle user-guide


【解决方案1】:

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

ext.producerMessage = null

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

【讨论】:

  • 谢谢,就是这样!仍然想知道为什么这不在用户指南中
  • @Doeyo 是的,我也不明白,他们有很多例子,如果你不了解某些方面,很难从头开始复制,这些方面超出了当前主题
猜你喜欢
  • 1970-01-01
  • 2021-09-04
  • 2020-02-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-30
  • 1970-01-01
  • 2019-03-27
相关资源
最近更新 更多