我在 Google 上查找过这个,但 Gradle 网站上似乎没有任何文档,甚至没有人在论坛中讨论这个。
我在我的 Mac(10.8.2,ML)上安装了 Gradle,并且正在构建一个自定义 build.gradle 脚本。当我调用 println() 时,我想让输出着色(如红色错误、绿色信息等)。如何在我的 gradle 构建脚本中执行此操作?
这是我到目前为止的代码示例:
def proc = "echo `DATE`".execute()
proc.in.eachLine {line -> println line}
proc.err.eachLine {line -> println 'ERROR: ' + line}
在 this gradle forum 上,作为 StyledTextOutput 类的一部分,他们讨论了各种样式,例如 normal、header、userinput、identifier、description、progressstatus、failure、info 和 error。看起来这是一个内部类。有没有一种简单的方法可以在不导入大量包的情况下利用 Gradle/Groovy 的彩色打印功能?
最佳答案
找到答案了!根据this gradle forum post ,没有用于为记录器的输出着色的公共(public)接口(interface)。您可以自由使用内部类,但在未来的版本中可能会发生变化。在 gradle 脚本中,放在顶部:
旧 Gradle:
import org.gradle.logging.StyledTextOutput;
import org.gradle.logging.StyledTextOutputFactory;
import static org.gradle.logging.StyledTextOutput.Style;
Gradle 3.3+:
import org.gradle.internal.logging.text.StyledTextOutput;
import org.gradle.internal.logging.text.StyledTextOutputFactory;
import static org.gradle.internal.logging.text.StyledTextOutput.Style;
(我还没有弄清楚如何将它移动到 init.gradle 文件中。)然后不久,定义
def out = services.get(StyledTextOutputFactory).create("blah")
我仍然不确定 create 方法的字符串中需要包含什么(它似乎还没有影响任何东西)。然后在你的任务中,
out.withStyle(Style.Info).println('colored text')
这应该适用于所有类别:正常、标题、用户输入、标识符、描述、进度状态、失败、信息和错误。如果要自定义每个类别的颜色,则需要额外的步骤,将以下内容添加到 ~/.gradle 目录(或 other options)中的 init.gradle 文件中:
System.setProperty('org.gradle.color.error', 'RED')
然后将“错误”类别替换为上述列表中的任何类别。
https://stackoverflow.com/questions/14516693/
相关文章:
iphone - Xcode:基于架构的条件build设置(设备(ARM)与模拟器(i386))
Android Studio - 错误 :Program type already present
build - 如何在 Mac 上构建和安装 Valgrind?
java - 构建失败 java.lang.OutOfMemoryError : Java heap
android - 使用 log4j 更新 Android Studio 后 gradle 构建出错
r - 关于 .Rbuildignore 正确使用 devtools 和/或 RStudio
eclipse - 项目 XXX 在其构建路径上没有任何 GWT SDK
ruby - 安装 Xcode 4.2 后无法使用 native 扩展构建 json (1.6.3)