【问题标题】:Jenkins console output has these strange characters from grunt command [31m[[39m...Jenkins 控制台输出具有来自 grunt 命令 [31m[[39m...
【发布时间】:2013-02-15 06:53:31
【问题描述】:

我正在使用 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。

【问题讨论】:

    标签: encoding console jenkins output gruntjs


    【解决方案1】:

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

    【讨论】:

    • 谢谢,将 --no-color 选项添加到 grunt 解决了问题
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      对我有用的是……

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

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

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          【解决方案5】:

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

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

          因此,使用高级 JVM 选项 -Dfile.encoding=UTF-8 重新启动从服务器就可以了,而无需抑制 mocha 的颜色。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多