我有简单的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
输出?
最佳答案
如果您具有以下代码:
task task1 {
println 'task1 starting'
}
您正处于任务的配置阶段。此阶段在脚本评估期间运行。如果要在执行任务时打印某些内容,则需要为任务添加操作。
看起来像:
task task1 << {
println 'task1 action'
}
运行任务时将评估这段代码。
<<
与在Task的对象上调用doLast
方法完全相同。您可以添加许多操作。编辑
我也强烈建议您阅读this博客文章。
关于java - Gradle总是从任何任务执行println,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43914562/