En tant que sonars sonar.jacoco.reportPath
, sonar.jacoco.itReportPath
y sonar.jacoco.reportPaths
ont tous été obsolète vous devez utiliser sonar.coverage.jacoco.xmlReportPaths
maintenant. Cela a également un impact si vous souhaitez configurer un projet maven multi-modules avec Sonar et Jacoco.
Comme @Lonzak a souligné Depuis Sonar 0.7.7, vous pouvez utiliser l'objectif d'aggravation des rapports de Sonar. Il suffit de mettre dans votre pom parent la dépendance suivante :
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.5</version>
<executions>
<execution>
<id>report</id>
<goals>
<goal>report-aggregate</goal>
</goals>
<phase>verify</phase>
</execution>
</executions>
</plugin>
Comme les versions actuelles de jacoco-maven-plugin sont compatibles avec les rapports xml, cela créera pour tous dans son propre dossier cible un dossier site/jacoco-aggregate contenant un module jacoco.xml
fichier.
Pour permettre à Sonar de combiner tous les modules, utilisez la commande suivante :
mvn -Dsonar.coverage.jacoco.xmlReportPaths=full-path-to-module1/target/site/jacoco-aggregate/jacoco.xml,module2...,module3... clean verify sonar:sonar
Pour que ma réponse soit courte et précise, je n'ai pas mentionné les maven-surefire-plugin
y maven-failsafe-plugin
dépendances. Vous pouvez les ajouter sans autre configuration :
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.2</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.22.2</version>
<executions>
<execution>
<id>integration-test</id>
<goals>
<goal>integration-test</goal>
</goals>
</execution>
</executions>
</plugin>