Лучший способ вернуть значение из Groovy замыкания в Gradle - PullRequest
1 голос
/ 10 июля 2019

Код ниже работает.Он получает коллекцию всех различных групп задач в Gradle и распечатывает их.Я надеялся, что есть лучший способ сделать это.Частично проблема заключается в том, что я могу получить доступ ко всем задачам только с помощью метода all(), который имеет эту сигнатуру void all(Closure var1);, что очень расстраивает, потому что, просто возвращая коллекцию, я получаю замыкание, которое может перебирать коллекцию.

afterEvaluate { Project project ->
    def blah = []
    project.tasks.all { Object object ->
        blah << object.group
    }
    println blah.unique()
}

Я надеялся, что есть лучший способ сделать это, чем хранить значения в переменной, определенной вне замыкания.Основная проблема здесь заключается в том, что во время выполнения замыкания у меня есть доступ только к одному имени группы за раз, и я хочу присвоить их уникальность, и я не могу ничего вернуть из функции all, потому что возвращаемый тип void.

1 Ответ

2 голосов
/ 10 июля 2019

Поскольку project.tasks - это коллекция, вы пробовали что-то вроде

afterEvaluate { Project project ->
    println project.tasks.collect { it.group }.unique()
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...