Avec le paramètre destFile
, vous avez modifié l'emplacement où l'objectif prepare-agent
écrira le fichier de données d'exécution. Par défaut, il s'agit de ${project.build.directory}/jacoco.exec
, ce qui signifie (toujours par défaut) target/jacoco.exec
. Toutefois, l'objectif report
s'attend à ce que le chemin d'accès au fichier d'exécution soit passé dans le paramètre dataFile
, qui, bien sûr, est par défaut ${project.build.directory}/jacoco.exec
, afin qu'ils soient synchronisés. Par conséquent, si vous souhaitez modifier le chemin d'accès à ce fichier d'exécution, vous devez faire correspondre ces deux paramètres. Afin de ne pas dupliquer le chemin, vous pouvez utiliser une propriété Maven pour le faire:
<properties>
<jacoco.execution.file>${project.build.directory}/coverage-reports/jacoco.exec</jacoco.execution.file>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.7.7.201606060606</version>
<configuration>
<destFile>${jacoco.execution.file}</destFile>
<dataFile>${jacoco.execution.file}</dataFile>
</configuration>
<executions>
<execution>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<execution>
<id>report</id>
<phase>prepare-package</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
Notez que cela ne changera pas le répertoire de sortie des rapports JaCoCo; cela change juste le chemin vers le fichier d'exécution. Pour cela, vous pouvez utiliser le paramètre outputDirectory
:
Répertoire de sortie pour les rapports. Notez que ce paramètre n'est pertinent que si l'objectif est exécuté à partir de la ligne de commande ou du cycle de vie de la génération par défaut. Si l'objectif est exécuté indirectement dans le cadre d'une génération de site, le répertoire de sortie configuré dans le plugin de site Maven est utilisé à la place.
et ont l'élément de configuration suivante ajouté:
<configuration>
<!-- rest of your JaCoCo configuration -->
<outputDirectory>${project.build.directory}/coverage-reports/jacoco</outputDirectory>
</configuration>
Cela fera que tous le code HTML, XML, CSV et rapports sont générés sous target/coverage-reports/jacoco
. Notez que cette configuration ne sera pas utilisée dans le cadre de la génération du site Maven lors du lancement de mvn site
. Au cours de la génération du site, vous devrez configurer le outputDirectory
du maven-site-plugin
à la place.
Merci encore :) – user1107888