沿着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。
答案 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)
在withNewAlias specified new alias.
withNullAlias will remove an alias.
withoutProperty did not contain alias property on input at all.
文件夹中创建一个名为gradle.properties
的文件。
在~/.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
。