ps 我使用了下面的项目过滤来做 因为一个项目会有多个分支 只想对部分项目来做过滤某些规则 这个规则还是有些重要的
环境
演示环境参考前边的文章
SonarQube 扫描 Java 代码
步骤
我们已经扫描一个 Java 项目
有 6 个 BUG
点开其中一个 BUG,点击详情,我们可以看到规则描述及规则编号。java:S2259-可能发生空指针异常。如何忽略这个异常呢?
目前我找到三种方式:
- 全局忽略
- 项目忽略
- 配置文件
全局忽略
最高级配置,所有的扫描将跳过指定的规则。
找到配置项 “Ignore Issues on Multiple Criteria”
规则写:
java:S2259
文件写:
**/*
这个配置将忽略所有文件的 java:S2259 检查
项目忽略
指定项目忽略某项规则检查。
首先找到配置项位置,配置方式和全局配置相同,只是在项目里配置。
配置方式和全局配置相同。
配置文件方式
在项目下的
sonar-project.properties
扫描配置文件中添加:
# 这里启用了两个忽略,e1 和 e2,分别忽略了两个检查
sonar.issue.ignore.multicriteria=e1,e2
sonar.issue.ignore.multicriteria.e1.ruleKey=java:S2259
sonar.issue.ignore.multicriteria.e1.resourceKey=**/*
sonar.issue.ignore.multicriteria.e2.ruleKey=java:S2095
sonar.issue.ignore.multicriteria.e2.resourceKey=**/*
配置文件的方式最为灵活,修改最为方便,执行扫描,查看一下扫描结果
sonar-scanner
可以看到,我们忽略了两种 BUG,扫描结果中的 BUG 显示为 0