Jenkins Warnings插件MSBuild质量门:为何未配置引用构建记录器?
Jenkins Warnings插件对比上一次构建质量门配置解决方案
针对你遇到的「找不到有效引用构建、质量门未生效」问题,核心是Warnings插件未明确指定引用构建来源,以下是具体修复步骤:
1. 确保构建历史可被访问
进入Jenkins任务配置页面,找到「构建历史记录」区域:
- 取消过度清理的配置,比如不要勾选「丢弃旧构建」或调整保留规则,确保至少保留最近1次成功构建;
- 设置「要保留的最大构建数」为至少2,保证插件能获取到上一次构建的历史数据。
2. 正确配置Warnings插件的引用构建规则
在任务配置的「构建后操作」中,找到「Record compiler warnings and static analysis results」的设置项:
- 定位到「Reference Build」区域:
- 选择「Use previous build as reference」(使用上一次构建作为对比基准);
- 可选勾选「Fall back to the last successful build」,避免上一次构建失败时无法找到有效引用;
- 保留你已勾选的「确定引用构建时忽略质量门结果」选项,确保仅对比当前与上一次的警告数据。
3. 验证解析器配置
确认Warnings插件能正确识别Delphi+MSBuild的警告输出:
- 在「Tools」区域选择「MSBuild」解析器;
- 构建时检查控制台输出,确认插件已成功捕获到警告/提示的数量(比如出现「Found X warnings」之类的日志)。
4. 测试配置效果
手动触发两次连续构建:
- 第一次构建作为基准;
- 第二次构建故意新增若干警告,观察控制台输出是否不再出现「Reference build recorder is not configured」「No valid reference build found」的提示;
- 若当前构建的警告+提示总数超过上一次,质量门将正常标记构建失败。
补充说明
「Reference build recorder」是Warnings插件的内置功能,无需单独安装或配置,只要正确指定引用构建来源,插件会自动启用该功能完成历史数据的记录与对比。
你提供的控制台错误日志:
[MSBuild] Reference build recorder is not configured [MSBuild] No valid reference build found [MSBuild] All reported issues will be considered outstanding [MSBuild] Evaluating quality gates [MSBuild] -> All quality gates have been passed [MSBuild] -> Details for each quality gate: [MSBuild] - [New (any severity)]: ?Completato con successo? - (Actual value: 0, Quality gate: 1,00)
本质是因为插件未找到指定的引用构建来源,导致所有问题被标记为「未解决」,质量门失去对比依据。
内容的提问来源于stack exchange,提问作者Bozzy
相关产品推荐
相关产品推荐

