Jacoco report-aggregate - Включить отчет о совокупном проекте
У меня есть мультимодульный проект Maven.
parent
child1
child2
child3-report
Все дочерние проекты имеют модульные тесты, и child3
зависит от child1
а также child2
, За помпой для ребенка3
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.2</version>
<executions>
<execution>
<id>prepare-agent</id>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<execution>
<id>report-aggregate</id>
<phase>verify</phase>
<goals>
<goal>report-aggregate</goal>
</goals>
</execution>
</executions>
</plugin>
Сформированный сводный отчет jacoco включает отчет только для child1 и child2, но не для child3. Как это исправить?
Не хочу создавать четвертый субмодуль только для отчетов.
5 ответов
В репозитории jacoco github, связанных с этой функцией, возникло несколько проблем (https://github.com/jacoco/jacoco/issues/812). Наличие отдельного модуля только для отчетов может быть приемлемым для некоторых, но лучше было бы исправить это с помощью настраиваемого флага.
Также есть ожидающий PR (https://github.com/jacoco/jacoco/pull/1007).
Что я сделал, так это добавил цель отчета, чтобы включить отчет самого модуля.
<execution>
<id>report-unit-tests</id>
<goals>
<goal>report</goal>
</goals>
</execution>
Я столкнулся с той же проблемой при реализации Jacoco для проекта Maven. К сожалению, я боюсь, что единственным решением является добавление нового дочернего модуля в проект Maven. Вы должны включить в него зависимости от ваших 3-х дочерних модулей и цели сводного отчета. Итак, вы должны иметь что-то вроде ниже конфигурации:
parent --> Goal: Prepare agent
child1 --> Goal: report
child2 --> Goal: report
child3-report --> Goal: report
child4-Aggregator --> Goal: report-aggregate
В вашем родительском pom.xml вы должны добавить модуль child4-Aggregator в качестве последнего модуля, который будет запущен.
Упомянутый PR @sidgate объединен. Теперь вы можете настроить его в maven следующим образом:
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<executions>
<execution>
<id>report-aggregate</id>
<goals>
<goal>report-aggregate</goal>
</goals>
<phase>verify</phase>
<configuration>
<includeCurrentProject>true</includeCurrentProject>
</configuration>
</execution>
</executions>
</plugin>
Обратите также внимание на документацию .
Может быть, вы можете попробовать это: добавить самого child3 в pom.xml child3
<dependency>
<groupId>XXXX</groupId>
<artifactId>child3</artifactId>
</dependency>