You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Jenkins DSL向Jenkins日志添加HTML?echo输出HTML不解析怎么办?

在Jenkins DSL中让日志显示可解析的HTML内容

我明白你遇到的问题——用普通echo输出HTML标签时,Jenkins只会把它当成纯文本展示,根本不会解析成对应的样式。要解决这个问题,得从全局配置和DSL代码写法两个方面调整,具体步骤如下:

1. 先让Jenkins允许解析日志里的HTML

首先得在Jenkins全局设置里开启HTML解析功能:

  • 进入Manage Jenkins → Configure System页面
  • 找到「Markup Formatter」配置项:
    • 要是你只需要用<h1>、<p>、<b>这类基础安全标签,选Safe HTML就够了(这是推荐选项,能避免XSS安全风险)
    • 如果你需要完全自定义的HTML(比如带样式、脚本,注意:脚本有安全风险),可以选Raw HTML
  • 记得保存配置

2. 在DSL里用正确的方式输出HTML

普通的echo命令会自动转义HTML的特殊字符(比如把<变成&lt;),所以肯定没法解析。你得用Jenkins提供的manager对象来直接输出原始HTML内容:

// 输出一级标题,会被渲染成大标题样式
manager.listener.logger.print('<h1>foobar</h1>')

// 也可以输出带样式的内容
manager.listener.logger.print('<div style="color: #2ecc71; font-size: 16px;">这是一段绿色的文本</div>')

为什么这个方法管用?

manager.listener.logger.print()会直接把内容写入构建日志,不会对HTML标签做转义处理。再配合你刚才设置的Markup Formatter,Jenkins就会自动解析这些标签,把它们渲染成对应的样式。

一些需要注意的点

  • 安全提醒:用Raw HTML的时候一定要谨慎,别在日志里插入不可信的脚本,建议只在内部可信的构建任务里用。
  • Safe HTML的限制:这个选项会过滤掉有风险的标签和属性(比如script标签、onclick事件),如果你的HTML没被渲染,可以检查是不是被安全规则过滤了。

内容的提问来源于stack exchange,提问作者Josh Beauregard

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 09:54:07