我正在尝试排除一个目录从声纳分析。我在我的声纳项目中定义了以下属性。属性文件:

sonar.sources=src/java
sonar.exclusions=src/java/test/****/*.java

我的目录结构是:

src/java/dig
src/java/test/dig

当我运行声纳运行,我得到以下信息:

 INFO  - Excluded sources:
 INFO  -   src/java/test/**/*.java
 INFO  - Excluded tests:
 INFO  -   **/package-info.java

但是当我检查分析结果时,测试目录中的所有包仍然存在。

我只需要告诉声纳不要分析测试目录和它里面的任何包。


当前回答

你可以用build.gradle做同样的事情

sonarqube {
properties {
    property "sonar.exclusions", "**/src/java/test/**/*.java"
  }
}

如果你想排除更多的文件/目录,那么:

sonarqube {
properties {
    property "sonar.exclusions", "**/src/java/test/**/*.java, **/src/java/main/**/*.java"
  }
}

其他回答

你可以用build.gradle做同样的事情

sonarqube {
properties {
    property "sonar.exclusions", "**/src/java/test/**/*.java"
  }
}

如果你想排除更多的文件/目录,那么:

sonarqube {
properties {
    property "sonar.exclusions", "**/src/java/test/**/*.java, **/src/java/main/**/*.java"
  }
}

如果我们想跳过整个文件夹,可以使用以下方法:

sonar.exclusions=folderName/**/*

如果我们只有一个特定的文件,只要给出完整的路径。

所有需要排除并在此添加的文件夹。

我输入区分大小写,并使用“”,它工作。分析时间从10分钟缩短为3分钟。

# Additional properties that will be passed to the scanner, 
# Put one key=value per line, example:
sonar.exclusions=**\Scripts\**\*,**\Content\**\*

这招对我很管用:

sonar.exclusions=src/**/wwwroot/**/*.js,src/**/wwwroot/**/*.css

它排除了“wwwroot”文件夹的任何子目录下的任何。js和。css文件,作为“src”文件夹(项目根)的子目录之一出现。

试试这样做:

sonar.exclusions=src/java/test/**