能否使用Jenkins Warnings NG插件解析ng build产生的构建警告?
Warnings Next Generation插件解析ng build警告的实现方案
可以实现,插件本身没有内置ngBuild这个专用解析工具,通过插件自带的自定义日志解析能力匹配Angular构建输出的警告格式即可,不需要手动翻阅控制台日志。
前置调整
首先修改构建环节的执行逻辑,避免日志格式干扰解析:
- 提前创建日志存放目录,避免重定向输出时报错:执行
sh 'mkdir -p report' - 给
ng build命令加--no-color参数禁用彩色输出,注意:如果不加该参数,Angular CLI输出的ANSI彩色转义字符大概率会导致正则匹配完全失效;如果你的环境中构建警告会输出到错误流,需要把错误流合并到标准输出,最终命令如下:sh 'ng build --configuration production --no-color > report/build.log 2>&1'
核心配置修改
把你原有recordIssues块里不存在的ngBuild()替换为自定义解析工具,完整可用的阶段配置如下:
stage("Analysis"){ steps{ nodejs(nodeJSInstallationName: 'nodejs') { sh 'npm ci' sh 'mkdir -p report' sh 'eslint src --ext .ts -f checkstyle > report/checkstyle-result.xml' sh 'ng build --configuration production --no-color > report/build.log 2>&1' recordIssues tools: [ esLint(pattern: 'report/checkstyle-result.xml'), customTool( id: 'ng-build-warnings', name: 'Angular生产构建警告', pattern: 'report/build.log', // 匹配标准Angular警告行格式:Warning: 文件路径:行号:列号 - 警告信息 regex: '^Warning:\\s+(.+):(\\d+):(\\d+)\\s+-\\s+(.+)$', // 把正则匹配到的分组映射到警告的对应字段 mapping: [ fileName: '$1', lineNumber: '$2', message: '$4' ], skipNoMatches: true ) ] } } }
适配说明
- 上述正则默认匹配Angular CLI输出的带文件位置的代码类警告,比如模板类型错误、未使用导入、循环依赖等常见构建警告。
- 如果需要匹配无对应文件的全局警告(比如打包体积超阈值、版本兼容提示类警告),可以额外新增一个自定义解析规则,或者调整现有正则兼容这类无行号的日志行。
- 首次配置运行后,如果存在漏匹配的警告,可以在构建结果的Warnings页面查看未被解析的日志片段,微调正则表达式即可覆盖全量场景。
内容的提问来源于stack exchange,提问作者wotanii
相关产品推荐
相关产品推荐

