Gradle 4.0 不在命令行中显示已执行的任务

Posted

技术标签:

【中文标题】Gradle 4.0 不在命令行中显示已执行的任务【英文标题】:Gradle 4.0 does not display executed tasks in command line 【发布时间】:2018-02-03 15:43:39 【问题描述】:

当我从终端运行 gradle build 或任何其他 gradle 命令时,我看不到最近执行的任务及其状态(例如 :testClasses UP-TO-DATE),而只能看到 BUILD SUCCESSFUL

但是,当我使用 gradle 插件从 eclipse IDE 运行构建命令时,一切都很好:

我正在使用 Gradle 4.0。有什么建议可以解决吗?

【问题讨论】:

你使用 -q 吗?如果尝试使用 -info 它会写更多信息? @VasileBors -info 部分解决了这个问题,但是输出有点大而且不容易阅读,我只想看看任务层次结构。我解决了这个问题,请参阅下面我自己的答案。干杯。 【参考方案1】:

我发现了这个问题。如果您执行gradle --help-,您可能会注意到选项列表中的--console 选项负责gradle 任务执行期间的输出。由于 gradle v4.0 控制台选项默认设置为 rich 这会导致我使用终端获得输出。基本上使用--console=plain 可以解决问题(例如:gradle --console=plain build)。

【讨论】:

我已经搜索了将其设为默认值,但找不到一个.. 相反,我使用 alias 类似这样的东西:alias gradle='gradle --console=verbose' echo "alias gradle='gradle --console=verbose'" >> ~/.bashrc 您可以在项目根目录(仅适用于该项目)或 GRADLE_USER_HOME 目录(适用于所有 gradle命令)。属性文件可让您设置默认值,但仍可根据需要通过命令行进行更改。设置别名意味着控制台模式是固定的,除非您重新定义别名。将org.gradle.console=... 添加到属性文件中。有关此内容的完整文档,请参见此处:docs.gradle.org/current/userguide/build_environment.html【参考方案2】:

从 Gradle 4.3 开始,还有另一个选项:--console=verbose

这使用了 4.0 中引入的新的丰富样式输出,但也输出了早期版本中默认的任务标题和结果(:compileJava UP-TO-DATE 等)。它还会为 --console=plain 不做的输出着色。

发行说明中详细介绍了该功能: https://docs.gradle.org/4.3/release-notes.html#new-command-line-options

选项的完整列表: https://docs.gradle.org/current/userguide/command_line_interface.html#sec:command_line_customizing_log_format

【讨论】:

以上是关于Gradle 4.0 不在命令行中显示已执行的任务的主要内容,如果未能解决你的问题,请参考以下文章

Gradle 任务 -- << 操作符

Android Gradle 插件自定义 Gradle 任务 ② ( 在 Terminal 面板中执行 gradlew task 命令显示所有任务 | 命令行输出所有任务 | 单独执行指定任务 )

Android Gradle 插件自定义 Gradle 任务 ② ( 在 Terminal 面板中执行 gradlew task 命令显示所有任务 | 命令行输出所有任务 | 单独执行指定任务 )

它当前正被另一个 Gradle 实例使用

Gradle Exec 任务不在远程主机上以 psql 开头

Android Gradle 插件自定义 Gradle 任务 ⑥ ( 执行 Gradle 任务的简化版命令 | 同时执行多个 Gradle 任务的命令 )