Gradle всегда печатает из любой задачи

У меня простой build.gradle (или любой build.gradle с задачей, которая имеет println)

println GradleVersion.current().prettyPrint()

task task1{
    println 'task1 starting'
}

Теперь, когда я бегу $ gradle build Я всегда вижу выполнение задач или вывод на печать

task1 starting
:compileJava UP-TO-DATE
:processResources UP-TO-DATE
:classes UP-TO-DATE
:jar
:assemble
:compileTestJava UP-TO-DATE
:processTestResources UP-TO-DATE
:testClasses UP-TO-DATE
:test UP-TO-DATE
:check UP-TO-DATE
:build

BUILD SUCCESSFUL

Total time: 1.291 secs

Почему всегда есть выход из println внутри задачи?

2 ответа

Решение

Если у вас есть следующий фрагмент кода:

task task1 {
    println 'task1 starting'
}

Вы находитесь в фазе настройки задачи. Этот этап выполняется во время оценки скрипта. Если вы хотите напечатать что-то во время выполнения задачи, вам нужно добавить действие для задачи.

Это выглядит как:

task task1 << {
   println 'task1 action'
}

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

Из главы 55. Жизненный цикл сборки http://www.gradle.org/docs/current/userguide/build_lifecycle.html

// in `settings.gradle`
// println 'This is executed during the initialization phase.'

println 'This is executed during the configuration phase.'

task configure {
    println 'This is also executed during the configuration phase.'
}

task execute << {
    println 'This is executed during the execution phase.'
}

бежать с gradle help

выход:

This is executed during the initialization phase.
This is executed during the configuration phase.
This is also executed during the configuration phase.
:help

Welcome to Gradle 1.10.

To run a build, run gradle <task> ...

To see a list of available tasks, run gradle tasks

To see a list of command-line options, run gradle --help

BUILD SUCCESSFUL

Total time: 1.882 secs
Другие вопросы по тегам