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. Как это исправить?

Не хочу создавать четвертый подмодуль только для отчетов.

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
0
3 489
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

возможно, вы можете попробовать это: добавить сам 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).

Другие вопросы по теме