如何在SonarLint中为特定文件排除指定规则(配置不生效排查)
SonarLint 单文件指定规则排除配置方案(Eclipse多项目场景)
配置失效核心原因
绝大多数场景下配置不生效都是键值对格式不符合SonarLint参数规范,或者配置作用域选错导致的,针对LN_LexisConveyOnline项目的配置可按下面的标准流程调整。
标准配置格式
SonarLint 单维度排除规则的根参数为sonar.issue.ignore.multicriteria,所有排除规则必须按序号分组配置,每组规则必填两个子参数:
- 序号从1开始递增,每一组独立的排除规则对应一个唯一序号
- 每组必须同时配置资源匹配项和规则匹配项,缺任意一项整组配置不生效:
sonar.issue.ignore.multicriteria.{序号}.resourceKey:值为目标文件的路径匹配表达式,支持Ant风格通配符- 匹配单文件直接填写文件相对于项目根目录的路径,例如
src/main/java/com/lexis/online/TestController.java - 匹配目录下所有Java文件可写为
**/src/main/java/com/lexis/online/**/*.java,开头的**/用于适配多层父目录,避免路径层级匹配失败
- 匹配单文件直接填写文件相对于项目根目录的路径,例如
sonar.issue.ignore.multicriteria.{序号}.ruleKey:值为待排除规则的完整ID,格式为规则仓库:规则编号,例如排除Java空指针风险规则填java:S2259
注意:禁止只填规则编号(例如只写
S2259),必须带规则仓库前缀,Java代码对应规则前缀统一为java:。
多项目场景配置注意事项
Eclipse中同时打开多个项目时,不要在SonarLint全局配置页添加上述参数,必须右键选中LN_LexisConveyOnline项目,进入项目专属的SonarLint配置页添加分析参数,避免全局配置被项目级配置覆盖,或路径匹配规则作用到其他打开的项目上。
配置后生效操作
参数填写完成后,右键点击目标项目,依次选择SonarLint -> Clean all issues清空历史扫描缓存,再重新触发项目扫描即可,不需要重启Eclipse。

内容的提问来源于stack exchange,提问作者Blaine
相关产品推荐
相关产品推荐

