У меня есть многомодульный проект 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. Как это исправить?
Не хочу создавать четвертый подмодуль только для отчетов.




возможно, вы можете попробовать это: добавить сам child3 в pom.xml child3
<dependency>
<groupId>XXXX</groupId>
<artifactId>child3</artifactId>
</dependency>
Я столкнулся с той же проблемой при реализации 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 как последний модуль, который будет запущен.
Что я сделал, так это добавил цель отчета, чтобы включить отчет самого модуля.
<execution>
<id>report-unit-tests</id>
<goals>
<goal>report</goal>
</goals>
</execution>
В репозитории jacoco github возникло несколько проблем (https://github.com/jacoco/jacoco/issues/812), связанных с этой функцией. Наличие отдельного модуля только для отчетов может быть приемлемым для некоторых, но лучше было бы исправить это с помощью настраиваемого флага.
Также есть ожидающий PR (https://github.com/jacoco/jacoco/pull/1007).