如何使“ gradle --console = rich”成为默认值?

End*_*ife 2 gradle

按照这个答案(对我来说,顺便说一句)和javadocs,我尝试了

gradle.startParameter.consoleOutput = org.gradle.api.logging.configuration.ConsoleOutput.Rich
Run Code Online (Sandbox Code Playgroud)

在我的~/.gradle/init.gradle。但是,我仍然需要--console=rich获得颜色输出。为什么?

经过Gradle 2.14.1和3.2.1测试。

终端是cygwin urxvt,TERM变量设置为rxvt-unicode-256color。

Edu*_*rch 7

Gradle 4.3开始,您可以在中使用org.gradle.consoleproperty gradle.properties

org.gradle.console=rich
Run Code Online (Sandbox Code Playgroud)

新的控制台详细模式将打印所有任务的结果(例如UP-TO-DATE),例如Gradle 3.5和更早的版本。您可以通过--console=verbose或通过新的Gradle属性进行设置org.gradle.console=(plain rich verbose)


Mar*_*rga 4

我不确定您是否可以从 gradle 脚本强制使用丰富的控制台,因为检测可能发生在解释脚本之前。

NativeServices 类提供与控制台的集成。如果你查看源代码,日志中可能会打印两条消息:

Native-platform terminal integration is not available. Continuing with fallback.

Unable to load from native-platform backed ConsoleDetector. Continuing with fallback.

后者可能会为您提供更多信息。尝试使用 运行 gradle 脚本--debug。您可能会发现您缺少一个本机库,该库在 cygwin 中不可用,或者在库路径上不可用。

我相信当您从命令行指定丰富的控制台时它会起作用,因为即使控制台不表明它支持颜色,gradle也会强制使用颜色。

如果您不在 Windows 本机命令行中使用 cygwin 控制台或 GitBash,它还能工作吗?

有一个解决方法可以让您完成这项工作。您可以在 cygwin 中创建一个别名,该别名将始终添加--console=rich.

如果您使用 gradle 包装器,则可以编辑gradlew脚本并添加命令行参数。为了使其自动化,您可以更改wrapper任务以更改零件中的脚本doLast