SonarQube无法解析Pylint原生格式输出报告问题求助
问题原因
- 你使用的Pylint 2.11.1默认原生输出格式,与sonar-scanner 4.4.0对应的SonarQube Python插件的解析规则不兼容
- 一是Pylint默认输出开头的
************* Module xxx模块声明行不在SonarQube的解析规则覆盖范围内 - 二是高版本Pylint默认输出的字段分隔符、字段顺序和旧版SonarQube Python插件预期的格式不匹配,导致所有行都无法识别
解决方法
优先调整Pylint报告生成参数适配解析规则,操作成本最低:
- 方法1:使用SonarQube官方指定的消息模板生成报告
执行Pylint扫描时新增--msg-template参数,命令示例:
该模板生成的报告无多余模块声明行,字段格式完全匹配SonarQube解析要求,兼容性最好。pylint 你的扫描目录 --msg-template="{path}:{line}:{column}: [{msg_id}({symbol}), {obj}] {msg}" > report.txt - 方法2:使用Pylint的parseable输出格式
执行Pylint扫描时指定输出格式为parseable,命令示例:
该格式会自动过滤多余的模块声明行,输出字段顺序适配绝大多数版本的SonarQube Python插件。pylint 你的扫描目录 --output-format=parseable > report.txt
调整报告格式后重新执行sonar-scanner命令即可正常导入Pylint分析结果。
内容的提问来源于stack exchange,提问作者wecx
相关产品推荐
相关产品推荐

