Configure Sonar to exclude files from Maven pom.xml Configure Sonar to exclude files from Maven pom.xml xml xml

Configure Sonar to exclude files from Maven pom.xml


Sonar exclusions (like other sonar properties) have to be added to the <properties> section of the POM file. Like so (example from excluding jOOQ autogenerated code from current project):

<properties>    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>    <sonar.host.url>http://www.example.com/</sonar.host.url>    <sonar.jdbc.url>jdbc:postgresql://www.example.com/sonar</sonar.jdbc.url>    <sonar.jdbc.driver>org.postgresql.Driver</sonar.jdbc.driver>    <sonar.jdbc.username>sonar</sonar.jdbc.username>    <sonar.jdbc.password>sonar</sonar.jdbc.password>    <sonar.exclusions>org/binarytherapy/generated/**/*, **/GuiceBindComposer.java</sonar.exclusions>    <sonar.dynamic>reuseReports</sonar.dynamic></properties>


classes/packages mentioned in <sonar.exclusions> excludes the given classes from all static analysis by Sonar, however <sonar.coverage.exclusions> excludes given classes/packages only from coverage, and still be analyzed for other parameters.

<properties>    <sonar.coverage.exclusions>        **/domain/**/*,        **/pojos/*    </sonar.coverage.exclusions></properties>

Reference:

Source:


When doing your Sonar exclusions as shown in the accepted answer, make sure you follow this pattern approach from the SonarQube documentation:

Relative paths are based on the fully qualified name of the component (like the one displayed below):

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

Examples:

# 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.javasrc/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.cobbank/**/*# Exclude all COBOL programs in the "bank" directory and its sub-directories whose extension is .cbl# Matches bank/ZTR00021.cbl, bank/data/CBR00354.cblbank/**/*.cbl

So if you want to exclude all classes ending with "Bean" and all classes in the "src/main/java/org/sonar" directory (but not in its sub-directories) add the following sonar.exclusions property to the pom's properties:

<properties>  ...  <sonar.exclusions>**/*Bean.java,src/main/java/org/sonar/*</sonar.exclusions></properties>