<sonar.exclusions> in pom.xml (Maven multi-module project) works locally but not on company server

25,784

Solution 1

Try this, I had same issue and it worked for me

Don't start with "/src/main/java/" Instead start with "com/companyname/projectname/"

I personally prefer "**com/companyname/projectname/../**"

Solution 2

I might be mistaken, but you should remove the / characters at the beginning of the sonar.exclusions pathes, to have them computed relative to the project's root directory.

Share:
25,784

Related videos on Youtube

user3920253
Author by

user3920253

Updated on July 09, 2022

Comments

  • user3920253
    user3920253 almost 2 years

    I'm using <sonar.exclusions> in pom.xml to exclude certain packages for unit test code coverage. I have set up Sonar locally and the exclusions reflect on the report. But then, the same exclusions are not honored on the company server.

    I am using <sonar.skippedModules> which works as intended and skips the required modules perfectly fine on both environments.

    Local Sonar version is Version 4.3.1 Company's Sonar version is Version 4.1.2

    An example of how I have written <sonar.skippedModules> in one of the modules:

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.mainClass>.....</project.mainClass>
        <sonar.exclusions>
            /src/main/java/../../../../../Package1/*,
            /src/main/java/../../../../../Package2/*,
            /src/main/java/../../../../../JavaClass1.java
        </sonar.exclusions>
        <sonar.language>java</sonar.language>
    </properties>
    

    Can you please help me understand why <sonar.exclusions> is honored only locally but not when I build the job (set up on Jenkins) to generate the Sonar report on the company server? Does the difference in the version matter?

    Would absence of new-line character following the comma to separate the package names make a difference?

    • lquitadamo
      lquitadamo over 9 years
      Why do you use '../..'? Do you want exclude all file in Package1, Package2 and class JavaClass1 in all package?
  • PAA
    PAA over 4 years
    It looks like sonar.exclusions doesn't exclude the multiple paths like **/enums/**,**/entity/**,**/constant/**
  • PAA
    PAA over 4 years
    It looks like sonar.exclusions doesn't exclude the multiple paths like **/enums/**,**/entity/**,**/constant/**