in pom.xml (Maven multi-module project) wo

2019-04-18 09:38发布

问题:

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?

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



回答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.