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