在 Jenkins Pipeline 中注入精确时间需安装并启用 Build Timestamp 插件,配置格式后通过 ${BUILD_TIMESTAMP} 在 sh 步骤中打印,如 sh 'echo "[INFO] Build time: ${BUILD_TIMESTAMP}"'。

要在 Linux 环境下的 Jenkins 流水线(Pipeline)日志中注入精确的时间,关键不是靠日志着色或时间戳高亮,而是让每次构建的准确时间作为可读、可复用的变量出现在日志输出里。Build Timestamp 插件本身不直接“注入日志”,但它提供 BUILD_TIMESTAMP 环境变量——你只需在脚本步骤中显式打印它,就能实现在日志中留下带格式的精确时间。
确保插件已正确安装并全局启用
Build Timestamp 插件必须完成两步才生效:安装 + 全局配置启用。缺一不可。
- 进入 Manage Jenkins → Plugin Manager → Available,搜索并安装 Build Timestamp Plugin
- 安装后,前往 Manage Jenkins → Configure System,找到 Build Timestamp 区域
- 勾选 Enable Build Timestamp(有些版本叫 “Use Build Timestamp”),并设置你想要的格式,例如:
yyyy-MM-dd HH:mm:ss.SSS Z(含毫秒和时区) - 保存配置,否则所有 Pipeline 都拿不到
BUILD_TIMESTAMP
在声明式 Pipeline 中打印精确时间到日志
直接在 steps 里用 sh 打印环境变量即可。Jenkins 会自动将 ${BUILD_TIMESTAMP} 替换为实际值,并原样输出到控制台日志。
- 推荐写法(Shell 脚本中使用大括号避免变量混淆):
sh 'echo "[INFO] Build time: ${BUILD_TIMESTAMP}"' - 如果想在多个阶段统一打点,可封装成函数:
def logTime() { sh "echo [TIMESTAMP] \${BUILD_TIMESTAMP}" },然后在各 stage 中调用logTime() - 注意:不要写成
$BUILD_TIMESTAMP(无大括号),在单引号 shell 中不会展开;双引号需转义\${BUILD_TIMESTAMP}防止 Groovy 提前解析
补充增强:让时间更醒目、更结构化
纯 echo 输出容易被淹没。加一点小技巧,能让时间信息更易定位、更适合后续日志分析。
- 用 ANSI 颜色包裹(需配合
ansiColor插件):sh 'echo -e "\033[1;36m[⏱️ BUILD TIME] ${BUILD_TIMESTAMP}\033[0m"' - 导出为文件供归档:
sh 'echo "${BUILD_TIMESTAMP}" > build-start-time.txt' - 与 Git 提交信息联动:
sh 'echo "Built from commit $(git rev-parse --short HEAD) at ${BUILD_TIMESTAMP}"'
验证是否生效的最快方式
写一个最小化测试流水线,运行后立刻检查控制台输出是否有你设定格式的时间串:
- 新建 Pipeline 任务,配置如下:
agent any
stages {
stage('Check Time') {
steps {
sh 'echo "Current BUILD_TIMESTAMP: ${BUILD_TIMESTAMP}"'
}
}
}
}
</pre>
- 运行构建,打开 Console Output,搜索
BUILD_TIMESTAMP—— 若看到类似2026-05-02 07:57:23.142 CST的输出,说明已成功注入


















