Sonar扫描时跳过指定代码的方法

现在很多项目里使用Sonarqube管理代码质量,团队一般也会有硬性的指标。如果有些代码虽然不合规范,但是在实际环境中不得不这样写,那么我们为了降低issue的数量,可以让Sonar跳过这一段的检测。

方法1:NOSONAR 注释

加在要忽略的代码的后面,可指定跳过这一行代码:

fos = new FileOutputStream(new File("abc.txt"));// NOSONAR

方法2:用 @SuppressWarnings 注解(Java特性)

@SuppressWarnings("findsecbugs:PATH_TRAVERSAL_IN")
 public static void main(String args[]) {
      ......
@SuppressWarnings("squid:S2755")
public static void main(String args[]) {
     ......

注解中的参数是Sonarqube的对应的rule的id,可使Sonar对这段代码忽略这条rule。rule的id可在 Sonar UI 上查看

点击一个issue的详情,右上角的这个就是

Sonar扫描时跳过指定代码的方法_第1张图片

如果要忽略多条rule, 可传多个参数:

@SuppressWarnings({"squid:S2755","findsecbugs:XXE_DOCUMENT"})

 

方法3:用sonar.exclusions配置项,忽略整个文件

mvn $MAVEN_CLI_OPTS sonar:sonar 
-Dsonar.exclusions=src/main/generated/**/*,target/generated-sources/**/*

 

你可能感兴趣的:(项目环境集成)