Оператор левого сдвига Gradle (<<) и разница в поведении doLast - PullRequest
1 голос
/ 09 марта 2019

Быстрый вопрос, поскольку leftShift устарел из 5+ версий Gradle, переключающихся на doLast. Я заметил изменение в поведении кода, который теперь работает с doLast.

Здесь у меня оченьпростой build.gradle, как показано ниже:

def commonThingToDo = { task ->
    println "Running ${task.name}"
}

task CommonTask << commonThingToDo

task CommonTask_doLast {
    doLast {
            commonThingToDo
    }
}

Запуск gradle из командной строки дает следующие результаты.У меня сложилось впечатление, что теперь мы можем использовать оператор левого сдвига (<<) в качестве синонима для метода doLast, но вывод в каждом случае кажется разным, даже если сборка прошла успешно. </p>

IЯ немного сбит с толку, и я был бы очень признателен, если бы кто-нибудь смог объяснить, что я делаю неправильно.

    $ gradle commonTask

    > Task :CommonTask
    Running CommonTask

    BUILD SUCCESSFUL in 1s
    1 actionable task: 1 executed


    $ gradle CommonTask_doLast
    > Task :CommonTask_doLast

    BUILD SUCCESSFUL in 1s
    1 actionable task: 1 executed

Большое спасибо, Шанкар

1 Ответ

0 голосов
/ 09 марта 2019

Переключитесь на использование doLast, как вы использовали <<:

task CommonTask_doLast {
    doLast commonThingToDo
}

commonThingToDo - это уже правильный аргумент для doLast, он был заключен в другое замыкание в вашем образце.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...