java – Gradle总是从任何任务中执行println

我有简单的build.gradle(或任何具有println的任务的build.gradle)
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方法完全相同.您可以添加许多操作.

相关文章

Java中的String是不可变对象 在面向对象及函数编程语言中,不...
String, StringBuffer 和 StringBuilder 可变性 String不可变...
序列化:把对象转换为字节序列的过程称为对象的序列化. 反序...
先说结论,是对象!可以继续往下看 数组是不是对象 什么是对...
为什么浮点数 float 或 double 运算的时候会有精度丢失的风险...
面试题引入 这里引申出一个经典问题,看下面代码 Integer a ...