我使用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_TOOL_OPTIONS=-Dfile.encoding=UTF-8
之后,现在是UTF-8。
6条答案
按热度按时间r1zhe5dt1#
看上去像是颜色转义序列。查看是否可以将
--no-color
这样的参数传递给命令(如果工具支持,请参阅this),或者查看AnsiColor pluginhiz5n14c2#
或者,如果您喜欢颜色,可以使用Jenkins AnsiColor Plugin在构建日志中正确显示颜色转义序列。
jum4pzuy3#
对我有用的是...
-Dsbt.log.noformat=true抑制了我的Play 2.1.1版本上控制台输出的彩色化,使Jenkins上的控制台日志可读。现在,如何以一种不太XML的方式获得测试结果?
ar7v8xwq4#
如果你可以在Jenkins中安装插件,有一个更好的选择。只需安装AnsiColor插件并将其添加到Jenkinsfile:
现在,您不仅消除了烦人的字符,而且还在输出中添加了颜色!
brjng4g35#
它看起来像着色控制命令被你的shell忽略了。就修复它而言,它可能涉及更改脚本,以便它不产生该输出。
xxhby3vn6#
我对这整个问题有不同的解决办法。事实上,上面列出的建议没有一个对我有用。我使用了两种类型的奴隶:CentOS和Ubuntu机器。由于某种原因,这个问题只影响CentOS机器,而不是Ubuntu机器。
我比较了两种类型的从站的“系统信息”,发现文件.encoding在CentOS主机上设置为
ANSI_X3.4-1968
。这是默认设置。Ubuntu的默认值是UTF-8
。因此,用高级JVM选项
-Dfile.encoding=UTF-8
重新启动从服务器就可以了,而不需要抑制mocha的颜色。