Encoding Jenkins控制台输出有来自grunt命令[31m[[39m]的这些奇怪字符。。。

Encoding Jenkins控制台输出有来自grunt命令[31m[[39m]的这些奇怪字符。。。,encoding,console,jenkins,output,gruntjs,Encoding,Console,Jenkins,Output,Gruntjs,我正在使用jenkins运行grunt contrib jshint命令,控制台输出包含如下文本: [31m[[39m[33mL425[39m[31m:[39m[33mC29[39m[31m][39m [33mExpected a conditional expression and instead saw an assignment.[39m 知道为什么吗?以及如何修复它 直接运行相同的脚本将显示: [L425:C29] Expected a conditional expression a

我正在使用jenkins运行grunt contrib jshint命令,控制台输出包含如下文本:

[31m[[39m[33mL425[39m[31m:[39m[33mC29[39m[31m][39m [33mExpected a conditional expression and instead saw an assignment.[39m
知道为什么吗?以及如何修复它

直接运行相同的脚本将显示:

[L425:C29] Expected a conditional expression and instead saw an assignment.

我已经检查了file.encoding设置,该设置被设置为MacRoman,在设置
export JAVA\u TOOL\u OPTIONS=-Dfile.encoding=UTF-8
之后,现在是UTF-8。

它看起来像是被shell忽略的着色控制命令。在修复它的过程中,可能需要更改脚本,以便它不会产生输出。

这些看起来像颜色转义序列。请查看是否可以将类似于
--no color
的参数传递给命令(如果工具支持,请参阅maybe),或者查看对我有效的是

play -Dsbt.log.noformat=true clean compile test dist

-Dsbt.log.noformat=true抑制了我的Play 2.1.1版本中控制台输出的颜色化,使Jenkins上的控制台日志可读。现在,如何以较少的XML方式获得测试结果?

或者,如果您喜欢颜色,可以使用在构建日志中正确显示颜色转义序列。

我有不同的方法整个问题的解决方案。事实上,上面列出的建议对我都不起作用。我使用了两种类型的从机:CentOS和Ubuntu机器。出于某种原因,这个问题只影响CentOS机器,而不是Ubuntu机器

我比较了两种类型的从机的“系统信息”,发现file.encoding在CentOS主机上设置为
ANSI_X3.4-1968
。这是默认值。Ubuntu默认值为
UTF-8

因此,使用高级JVM选项
-Dfile.encoding=UTF-8
重新启动从机就成功了,而不需要抑制摩卡的颜色。

谢谢,在grunt中添加了--no color选项解决了这个问题