SonarQube排除目录

时间:2014-01-24 02:26:03

标签: sonarqube sonar-runner

我正在尝试排除Sonar正在分析的目录。我在sonar-project.properties文件中定义了以下属性:

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

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

我只需要告诉Sonar不要分析测试目录及其中的任何包。

15 个答案:

答案 0 :(得分:81)

尝试这样的事情:

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

答案 1 :(得分:47)

我可以使用下面的配置(逗号分隔的文件夹路径)

排除多个目录
sonar.exclusions=system/**, test/**, application/third_party/**, application/logs/**

在运行声纳跑步者时,我在日志中得到以下内容

Excluded sources: 
  system/**
  test/**
  application/third_party/**
  application/logs/**

答案 2 :(得分:8)

最简单的方法是在启动服务器(localhost:8080)后转到服务器URL,然后以admin身份登录,转到设置>排除>源文件排除 - 在此处添加您的包。 重启服务器。

答案 3 :(得分:7)

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

sonar.exclusions=folderName/**/*

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

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

答案 4 :(得分:6)

另一个配置选项是添加maven属性sonar.exclusions。下面是一个示例pom文件,其中包含静态jquery目录和静态pdf查看器目录的排除。

<project >
<modelVersion>4.0.0</modelVersion>
<artifactId>my Artifact</artifactId>
<!-- Enviroment variables can be referenced as such: ${env.PATH} -->
<packaging>war</packaging>
<url>http://maven.apache.org</url>

<properties>

    <junit.version>4.9</junit.version>
    <mockito.version>1.9.5</mockito.version>
    <jackson.version>1.9.7</jackson.version>
    <powermock.version>1.5</powermock.version>

    <!--Exclude the files Here-->
    <sonar.exclusions>src/main/webapp/static/jquery_ui/*,src/main/webapp/static/pdf-viewer/*,src/main/webapp/static/pdf-viewer/**,src/main/webapp/static/pdf-viewer/**/*</sonar.exclusions>
</properties>

答案 5 :(得分:4)

这将适合您的情况:

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

答案 6 :(得分:2)

你正在使用什么版本的声纳? 有一个名为&#34; sonar.skippedModules = yourmodulename &#34;。

这将跳过整个模块。所以要注意它。

答案 7 :(得分:1)

只需提一下,一旦您从Sonar中排除了文件,请对Jacoco插件执行相同的操作:

<configuration>
<excludes>     
<exclude>com/acme/model/persistence/entity/TransactionEntity*</exclude>
<exclude>com/acme/model/persistence/ModelConstants.class</exclude>
</excludes>
</configuration> 

答案 8 :(得分:1)

将此行添加到您的sonar-project.properties文件

例如:sonar.exclusions = src / *。java 如果要排除文件夹,并且文件夹中有一个文件,请务必小心,首先必须排除文件或将文件逐个添加 例如,假设有一个如下所示的文件夹:

src/app.java src/controllers/home.java src/services/test.java

您必须执行以下操作: sonar.exclusions=src/app.java,src/controllers/*.java,src/services/*.java

对我有用

答案 9 :(得分:1)

如果您是Azure DevOps用户,并且在哪里以及如何排除文件和文件夹,请继续:

  1. 编辑管道
  2. 确保已添加“在SonarQube上进行分析”任务。如果您需要配置方面的帮助,则需要在其他地方查找。 建议:如果缺少管理链接,请使用UI管道编辑器而不是yaml编辑器。目前,尚无从Yaml转换为UI的方法。只需重新创建管道即可。如果使用git,则可以从存储库的根目录中删除yaml。
  3. 在“准备对SonarQube进行分析”任务的“高级”部分下,您可以添加排除项。请参阅其他人针对特定排除格式的建议。

示例:

# Additional properties that will be passed to the scanner, 
# Put one key=value per line, example:
# sonar.exclusions=**/*.bin
sonar.exclusions=MyProjectName/MyWebContentFolder/**

注意:如果不确定路径,可以进入sonarqube,查看您的项目,查看所有或新的“代码气味”,并且所需的路径在每个问题组的上方列出。您可以获取文件的完整路径,也可以像以下示例一样使用Wilds:

  • MyProjectName / MyCodeFile.cs
  • MyProjectName / **

如果您没有添加“运行代码分析”任务,请执行此操作并将其放置在“构建解决方案** / *。sln”任务之后。

保存并排队,然后检出声纳服务器,以查看排除是否有效。

答案 10 :(得分:1)

我输入了区分大小写并使用了 "" 并且它起作用了。分析时间从 10 分钟减少到 3 分钟。

Button(action: {}) { Text("Some Button Text") }
  .buttonStyle(FullWidthButtonStyle(backgroundColor: Color("user-profile-action-call1"))

Button(action: {}) { Text("Some other button text") }
  .buttonStyle(FullWidthButtonStyle(backgroundColor: .orange))

答案 11 :(得分:0)

添加逗号分隔的文件夹路径 sonar.exclusions=**/abc/**,**/def/**

这在一个有角度的项目中起作用

答案 12 :(得分:0)

您可以使用df1 <- merge(network_matrix_example, clusering_matrix_example, by.x= c("BGC1"), by.y = "BGC") df2 <- merge(df1, clusering_matrix_example, by.x= c("BGC2"), by.y = "BGC") names(df2)[names(df2)=="Family.x"] <- "Family1" names(df2)[names(df2)=="Family.y"] <- "Family2" df3 <- df2[,c("BGC1","BGC2","score","Family1","Family2")] df4 <- df3[with(df3, order(BGC1,BGC2,score,Family1,Family2)),]

做同样的事情
build.gradle

如果要排除更多文件/目录,则:

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

答案 13 :(得分:0)

你可以像这样跳过图书馆

project(":libABC") {
    apply plugin: 'org.sonarqube'
    sonarqube {
        skipProject = true
    }
}

答案 14 :(得分:-1)

这对我有用:

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

它不包括出现在“ src”文件夹(项目根目录)的子目录之一的文件夹“ wwwroot”的任何子目录下的任何.js和.css文件。