Как найти rootProject в Gradle 3.2.1

АТМ, я прохожу руководство пользователя gradle по адресу https://docs.gradle.org/current/userguide/multi_project_builds.html

Я просто следовал инструкциям там и дважды, трижды и четыре раза проверил, что я сделал, но по какой-то причине я продолжаю сталкиваться с

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

И я не могу понять, в чем проблема (то же самое касается двух коллег).

У кого-то здесь есть какой-то опыт, или он просто понял, что "О, проблема в том..."??? Может быть, я сейчас слишком слеп.

Мой вопрос в основном, как мне объявить свойство в 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.'
}}

1 ответ

Решение

Вы должны объявить переменную в корневом проекте, прежде чем пытаться использовать ее в подпроектах. Итак, вы должны добавить build.gradle файл в папке с settings.gradle файл и объявить эту переменную в нем, например, следующим образом:

ext.producerMessage = null

Это просто проблема с необъявленной переменной. Вы также можете взглянуть на источники, чтобы увидеть, что они объявлены. Проблема в том, что руководство пользователя не говорит о том, что вам нужен еще один файл с объявлением переменной.

Другие вопросы по тегам