У меня есть несколько уровней вложенных проектов Maven, где каждый модуль может участвовать в тестах глобальной интеграции. Для того, чтобы иметь глобальный охват, мульти модуль, я настроил jacoco использовать и совместно использовать один и тот же файл accross модулей, используя 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>
Таким образом, тот же файл данных используется каждым модулем, независимо от того, насколько глубоко он вложен в подмодули. Я проверил, правильный файл данных генерируется jacoco при запуске «mvn clean install».
Теперь проблема возникает при запуске mvn sonar:sonar
. Кажется, что плагин не может заменить эту переменную реальным путем. Я могу видеть следующее в журналах
[INFO] JaCoCoItSensor: JaCoCo IT report not found: /home/tomcat/.jenkins/jobs/MYJOB/workspace/${session.executionRootDirectory}/target/jacoco-it.exec
Это не работает лучше при использовании @{session.executionRootDirectory}
.
Любое обходное решение?