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

时间:2013-02-28 21:56:11

标签: 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 and instead saw an assignment.

我已经检查了设置为MacRoman的file.encoding设置,并且在设置export JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF-8之后现在是UTF-8。

5 个答案:

答案 0 :(得分:25)

那些看起来像颜色转义序列。看看你是否可以将--no-color之类的参数传递给命令(如果该工具支持它,请参见this)或查看AnsiColor plugin

答案 1 :(得分:6)

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

答案 2 :(得分:1)

对我有用的是......

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

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

答案 3 :(得分:0)

它看起来像是由shell忽略的着色控制命令。在修复它方面,可能涉及更改脚本以使其不产生该输出。

答案 4 :(得分:0)

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

我比较了两种类型奴隶的“系统信息”,我发现在CentOS主机上设置了{。{1}}。这是默认值。 Ubuntu默认值为ANSI_X3.4-1968

因此,使用高级JVM选项UTF-8重新启动从属设备可以完成这一操作,而无需抑制mocha的颜色。

相关问题