配置Sonar以从Maven pom.xml中排除文件

我有一个在maven中配置的项目,代码分析由SonarQube完成。

我正在尝试在pom.xml文件中配置SonarQube以从代码分析中排除一些文件。 这些文件可以通过它们的类名来标识,它们在扩展名之前包含下划线字符(它们是元模型类)。 下面我给出了我尝试排除它们的pom.xml文件的一部分:

 org.codehaus.mojo sonar-maven-plugin 2.2  src/main/java file:**/src/main/java/**/*_.*   

但是,上面的代码不起作用。 有没有办法从我的pom.xml文件配置SonarQube以在分析源代码时忽略这些文件?

先谢谢你。

必须将声纳排除(如其他声纳属性) 添加到 POM文件的部分 。 像这样(例如从当前项目中排除jOOQ自动生成的代码):

  UTF-8 http://www.example.com/ jdbc:postgresql://www.example.com/sonar org.postgresql.Driver sonar sonar org/binarytherapy/generated/**/*, **/GuiceBindComposer.java reuseReports  

在接受答案中显示的Sonar排除项时,请确保从SonarQube文档中遵循此模式方法:

相对路径基于组件的完全限定名称(如下所示):

 src/main/java/org/sonar/batch/phases/AbstractPhaseEvent.java 

示例

 # Exclude all classes ending with "Bean" # Matches org/sonar.api/MyBean.java, org/sonar/util/MyOtherBean.java, etc. **/*Bean.java # Exclude all classes in the "src/main/java/org/sonar" directory # Matches src/main/java/org/sonar/MyClass.java, src/main/java/org/sonar/MyOtherClass.java # But does not match src/main/java/org/sonar/util/MyClassUtil.java src/main/java/org/sonar/* # Exclude all files in the "bank" directory and its sub-directories # Matches bank/ZTR00021.cbl, bank/data/CBR00354.cbl, bank/data/REM012345.cob bank/**/* # Exclude all COBOL programs in the "bank" directory and its sub-directories whose extension is .cbl # Matches bank/ZTR00021.cbl, bank/data/CBR00354.cbl bank/**/*.cbl 

因此,如果要排除以“Bean”结尾的所有类以及“src / main / java / org / sonar”目录中的所有类(但不在其子目录中),请将以下sonar.exclusions属性添加到pom的properties

  ... **/*Bean.java,src/main/java/org/sonar/*  

我使用声纳来分析PHP代码库。 没有做到这一点。 我的解决方案是 – 我没有指定排除项,而是最终指定了包含目录,如下所示:

  ......... ./app/models,./app/controllers .........