Sonarqube 不能排除目录

Sonarqube 不能排除目录,sonarqube,sonar-runner,Sonarqube,Sonar Runner,我正试图排除Sonar分析的目录。我在我的声纳项目中定义了以下属性。属性文件: sonar.sources=src/java sonar.exclusions=src/java/test/****/*.java 我的目录结构是: src/java/dig src/java/test/dig 当我运行sonar runner时,我得到以下信息: INFO - Excluded sources: INFO - src/java/test/**/*.java INFO - Excl

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

sonar.sources=src/java
sonar.exclusions=src/java/test/****/*.java
我的目录结构是:

src/java/dig
src/java/test/dig
当我运行sonar runner时,我得到以下信息:

 INFO  - Excluded sources:
 INFO  -   src/java/test/**/*.java
 INFO  - Excluded tests:
 INFO  -   **/package-info.java
但是当我检查分析结果时,test目录中的所有包仍然存在


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

您使用的是什么版本的Sonar? 有一个选项称为“声纳。skippedModules=yourmodulename


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

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

尝试以下操作:

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

我可以使用以下配置(逗号分隔的文件夹路径)排除多个目录:

在运行sonar runner时,我在日志中得到了以下信息:

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

另一个配置选项是添加maven properties
sonar.Exclutions
。下面是一个示例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>

4.0.0
我的神器
战争
http://maven.apache.org
4.9
1.9.5
1.9.7
1.5
src/main/webapp/static/jquery\u ui/*,src/main/webapp/static/pdf-viewer/*,src/main/webapp/static/pdf-viewer/**,src/main/webapp/static/pdf-viewer/**/*

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

sonar.exclusions=folderName/**/*
如果我们只有一个特定的文件,请给出完整的路径


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

这将适用于您的案例:

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

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

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

com/acme/model/persistence/entity/TransactionEntity*
com/acme/model/persistence/modelstants.class

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


这在角度项目中起作用

将此行添加到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


这对我很有用

如果您是Azure DevOps用户,正在查找文件和文件夹的排除位置和排除方式,请看:

  • 编辑您的管道
  • 确保添加了“准备声纳分析”任务。如果需要帮助配置,您需要查看其他地方。建议:如果缺少管理链接,请使用UI管道编辑器和yaml编辑器。目前,没有办法从yaml转换到UI。只要重新创建管道。如果使用git,您可以从回购协议的根目录中删除yaml
  • 在“准备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/mycodile.cs
    • 我的项目名称/**
    如果没有添加“运行代码分析”任务,请执行此操作并将其放置在“生成解决方案**/*.sln”任务之后的某个位置

    保存并排队,然后检查sonarqube服务器,查看排除是否有效

    这对我很有用:

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

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

    您可以使用
    build.gradle

    sonarqube {
    properties {
        property "sonar.exclusions", "**/src/java/test/**/*.java"
      }
    }
    
    如果要排除更多文件/目录,则:

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

    我输入区分大小写的字符,并使用了“”,它成功了。分析时间从10分钟减少到3分钟

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

    你可以像这样跳过库

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

    我找到了解决方案:sonar.Exclutions=test/***.java但是如果您想避免测试分析,您可以尝试使用mvn clean package-DskipTestsWARN-“sonar.skippedModules”属性自版本4.3起就不推荐使用,不应该再使用了。请确保对通配符使用Ant fileglob模式。这是一个很好的解释:这是命令行选项定义,任何人看到它,确保您使用了
    src/test/java
    而不是
    src/java/test/
    。如何排除c中的方法?重要的是要注意,这不会被视为正则表达式并应用于整个项目
    sonar。排除=node_modules/**
    不会排除您需要执行的嵌套node_modules文件夹
    sonar.excludes=node_modules/**,/some/path/to/nested/node_modules/**
    要明确排除它们,我也会收到排除的消息,但仍会分析文件。在Teamcity参数中,我使用了您的提示,但在(-Dsonar.exclu…)之前插入了-D。在这里工作。:-)如何从扫描中排除所有*.html文件?尝试了这个
    sonar.Exclutions=**/bin/**,**.html
    ,但它仍然需要扫描html文件。Html文件都是位于多个位置的子文件夹,在子文件夹级别添加实际路径图将是更多的工作。有没有一种方法可以将所有*.specific_file_类型排除在扫描之外?这个答案与
    sonar.Exclutions=folderName
    sonar.Exclutions=folderName/**
    之间有什么区别?谢谢*-匹配零个或多个字符**-匹配零个或多个目录
    project(":libABC") {
        apply plugin: 'org.sonarqube'
        sonarqube {
            skipProject = true
        }
    }