user3920253 user3920253 - 1 month ago 11
Java Question

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

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?

Answer

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/../**"