Как настроить многомодульный Maven + Sonar + JaCoCo, чтобы получить общий отчет о покрытии в Sonar?

С прошлой недели я пытаюсь получить покрытие кода моего многомодульного проекта с помощью Sonar. Структура моего проекта выглядит следующим образом.

Web Service XYX
   +- pom.xml
   +-SubFOlder
   +- Module 1
      +- pom.xml 
   +- Module 2
      +- pom.xml 
   +- Module3
      +- pom.xml 

Означает, что у меня есть одна папка в моем каталоге, и внутри нее у меня есть все мои подмодули. Я могу создать файл jacoco.exec во всех целевых каталогах подмодулей. Хотите знать, как объединить все эти подмодули jacoco.exec, чтобы я мог получить объединенное покрытие кода в отчете сонара.


person MURALI KRISHNA    schedule 28.08.2016    source источник
comment
Я могу создать файл jacoco.exec во всех целевых каталогах подмодулей. Хотите знать, как объединить все эти подмодули jacoco.exec, чтобы я мог получить объединенное покрытие кода в отчете сонара.   -  person MURALI KRISHNA    schedule 28.08.2016
comment
Я даже пробовал варианты ‹sonar.jacoco.reportPath›${project.basedir}/target/jacoco.exec‹/sonar.jacoco.reportPath› и ‹sonar.jacoco.reportPath›${project.basedir}/../ target/jacoco.exec‹/sonar.jacoco.reportPath›, но не повезло Спасибо, если кто-нибудь предоставит решение.   -  person MURALI KRISHNA    schedule 28.08.2016
comment
Что в настоящее время отображается на панели инструментов SonarQube для отчетов? В моем проекте это все, что у меня есть для настройки Jacoco в моих помпонах (кроме собственно включений в подмодулях помпонов). Обратите внимание, что на самом деле в моих модулях есть как модульные, так и интеграционные тесты.   -  person Johnnei    schedule 28.08.2016
comment
Спасибо за ответ Johnei. Отчет сонара показывает все нулевые значения. Я хочу знать, как добавить свойства сонара, чтобы он мог автоматически выбирать все файлы (источник, класс, отчеты Surefire, jacoco.exec (важно)) из соответствующих папок (src/main/java, src/target/ классы, src/target/surefire-reports соответственно) вместо добавления всех свойств для каждого модуля.   -  person MURALI KRISHNA    schedule 30.08.2016
comment
В моем проекте я определил плагин jacoco в «pluginManagen», чтобы я мог выборочно активировать его в каждом модуле, поэтому я ожидаю, что определение его как плагина в корневом pom будет активировано для всех. Но поскольку я нахожусь в офисе, я не в состоянии проверить это.   -  person Johnnei    schedule 30.08.2016


Ответы (1)


Как я ответил здесь: вы можете собрать все отчеты вместе в одной папке (не забудьте назвать разные!) и используйте для этого моджо слияния, или используйте центральный уникальный файл для всех ваших отчетов, добавив флаг «добавить»:

-javaagent:append=true,destFile=/home/YourProject/report.exec

Здесь вы найдете дополнительную информацию о том, как настроить агент.

Надеюсь, поможет!

person Federico José Sorenson    schedule 31.08.2016