J'ai plusieurs niveaux de projets Maven imbriqués, où chaque module peut participer aux tests d'intégration globale. Pour avoir une couverture module global, multi, j'ai configuré jacoco à utiliser et partager le même fichier accross modules, en utilisant la variable Maven ${session.executionRootDirectory}
:
<execution>
<id>pre-integration-test</id>
<phase>pre-integration-test</phase>
<goals>
<goal>prepare-agent-integration</goal>
</goals>
<configuration>
<propertyName>jacoco.failsafeArgLine</propertyName>
<destFile>${session.executionRootDirectory}/target/jacoco-it.exec</destFile>
</configuration>
</execution>
De cette façon, le même fichier de données est utilisé par chaque module, peu importe à quel point il est imbriqué dans les sous-modules. J'ai vérifié, un fichier de données correct est généré par jacoco lors du lancement de "mvn clean install".
Le problème apparaît maintenant lors du lancement de mvn sonar:sonar
. Il semble que le plugin ne puisse pas remplacer cette variable par le vrai chemin. Je peux voir ce qui suit dans les journaux
[INFO] JaCoCoItSensor: JaCoCo IT report not found: /home/tomcat/.jenkins/jobs/MYJOB/workspace/${session.executionRootDirectory}/target/jacoco-it.exec
Il ne fonctionne pas mieux lors de l'utilisation @{session.executionRootDirectory}
.
Une solution de contournement?