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

时间:2017-02-07 16:00:48

标签: gradle

沿着this answer(对我有用,BTW)和javadocs,我尝试了

gradle.startParameter.consoleOutput = org.gradle.api.logging.configuration.ConsoleOutput.Rich

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

使用Gradle 2.14.1和3.2.1进行测试。

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

5 个答案:

答案 0 :(得分:5)

Gradle 4.3以来,您可以在org.gradle.console中使用gradle.properties属性:

org.gradle.console=rich
  

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

答案 1 :(得分:3)

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

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

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

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

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

我相信当你从命令行指定富控制台时它会起作用,因为即使控制台没有指示它支持颜色,gradle也会强制颜色。

如果您不在Windows本机命令行或GitBash中使用cygwin控制台,它是否有效?

有一种解决方法可以帮助您完成这项工作。 You can create an alias in cygwin始终会添加--console=rich

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

答案 2 :(得分:2)

  1. withNewAlias specified new alias. withNullAlias will remove an alias. withoutProperty did not contain alias property on input at all. 文件夹中创建一个名为gradle.properties的文件。

  2. ~/.gradle/内,添加行gradle.properties

每个构建将自动在org.gradle.console=rich下运行,因为新的--console=rich将与项目的gradle.properties合并。

如果您项目的gradle.properties包含与本地文件相同的标记,则将使用您项目的标签来覆盖本地文件的

答案 3 :(得分:1)

如果您使用的是Linux / Mac设置

alias gradle='gradle --console rich'

~/.bashrc

答案 4 :(得分:1)

Grade Wrapper 中,添加以下行:

org.gradle.console=rich

./gradle.properties脚本所在的根文件夹中的gradlew