什么实际上' gradle -q任务'呢?

时间:2014-10-05 15:14:04

标签: java groovy gradle

我已经编写了一个构建脚本:

task hello                       // 1

hello << {                       // 2
            println "task hello"
}

hello << {                       // 3
   println "another task hello"
}

我理解//1定义Task类型的对象,//2//3leftShift(Closure c)运算符应用于该任务。当我使用命令gradle -q hello运行该脚本时,我看到了以下输出:

task hello
another task hello

考虑到这一点,我们可以说gradle -q task_name执行所有应用了operator <<的封闭体,或者命令有另一种含义吗?

2 个答案:

答案 0 :(得分:6)

gradle -q hello将日志级别设置为 quiet println s记录在该级别,因此仍会显示)并执行任务hello。执行任务意味着执行其所有任务操作。您的构建脚本会添加两个任务操作,这些操作将按添加顺序执行。 (<<doLast的别名,它将任务操作添加到任务的任务操作列表的末尾。

# gradle -h
...
-q, --quiet             Log errors only.
...

答案 1 :(得分:2)

不,-q开关用于禁止记录到控制台(错误级别除外)和print语句的所有消息。

如果您执行以下脚本:

task lol

lol << {
    println '1' 
}

lol << {
    logger.lifecycle '2'
}

没有-q切换您在输出中同时获得12。只有-q时,才会打印1

<<运算符完全不同 - 它用于将action添加到task。有关详细信息,请参阅this答案。